gpt4 book ai didi

java - 检查像素坐标偏移的高效代码

转载 作者:行者123 更新时间:2023-11-29 03:19:48 26 4
gpt4 key购买 nike

我正在使用 Java 为游戏制作基于图 block 的渲染方法。

第一行(和第一列)的图 block 有可能被部分绘制在屏幕上,我想知道这些图 block 在屏幕上有多少像素。

我想到了这个(用于检查 splinter 瓷砖的最大 X 坐标):

int brokenX = xOffset; //xOffset can be any number
while (brokenX < 0){
brokenX += tileSet.getTileSize(); //corrects if the number is negative
}
while (brokenX >= tileSet.getTileSize()){
brokenX -= tileSet.getTileSize(); //corrects if the number is too big
}

这很好用。但这似乎是一种资源浪费(考虑到它会为每一帧完成两次)。

是否有一些有效的方式(位掩码等)来做到这一点?

最佳答案

我觉得你在找

brokenX = xOffset % getTileSize();

我认为上面的方法也适用于负值,但如果 xOffset 可以更大,那么你可以这样做

好的..很好。我认为只要在最后一行添加一个支票就可以解决这个问题。

hiddenTiles = xOffset /  getTileSize();
xOffset -= hiddenTiles * getTileSize();
if(xOffset < 0) {
brokenX= -(-xOffset % getTileSize());
}
else {
brokenX = xOffset % getTileSize();
}

或者正如 Jason 所建议的:就一行...

brokenX=  (xOffset + getTileSize())% getTileSize());

我真的认为,这也适用于负偏移。因此无需更改。

关于java - 检查像素坐标偏移的高效代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24348878/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com