Sha*_*neL 2 c# java int compare
public void checkForCollision () {
int headX = cells[0].x;
int headY = cells[0].y;
int noOfParts = nPoints;
for(int i = 1; i <noOfParts;i++)
{
int tempX = cells[i].x;
int tempY = cells[i].y;
if(tempX == headX && tempY == headY){
JOptionPane.showMessageDialog(null,"Head hit body");
//EndGameCollectScore etc.
}
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:'Cells []'是一个Point类型的数组,noOfParts只是蛇有多少个段
使用上面的代码,我试图将tempX与headX进行比较,但我想有一个错误的余地,例如+ -5,但我不确定如何实现这一点,我的理由背后是我想的可能是x和Y变量可能是相距几位数,所以如果我有蛇的一个段的半径(下面替换中的'蛇'的解释)那么如果我是对的并且值稍微偏离它仍然应该来回来积极.
如果有人能提出更好的方法吗?基本上它是一个Snake游戏,headX和headY是蛇的头部,细胞中剩下的X和Y变量是身体,我试图比较头部是否撞击身体.
我测试了它似乎工作但是在我再次测试它之后,似乎它只会拾取碰撞,如果我让蛇双回自己的几个方格.例如,如果我穿过身体垂直,它将无法检测到碰撞.
此外,我相当确定在蛇移动的每个块之后调用此方法.
干杯,沙恩.
PS在我的血液中运行很少的睡眠和过多的糖,如果你需要进一步的澄清,因为上面没有多少意义让我知道.
int eps = 5;
if (Math.abs(tempX - headX) <= eps && Math.abs(tempY - headY) <= eps) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1615 次 |
最近记录: |