📄 collisioniterator.java
字号:
public class CollisionIterator
{
public static int collisionX;
public static int collisionY;
public CollisionIterator()
{
}
public static int sgn(int i)
{
return i >= 0 ? ((int) (i <= 0 ? 0 : 1)) : -1;
}
public static boolean checkCollision(int i, int j, int k, int l, Landscape landscape, Worm worm)
{
int k1 = k - i;
int l1 = l - j;
int k2 = Math.abs(k1);
int l2 = Math.abs(l1);
int i2 = sgn(k1);
int j2 = sgn(l1);
int i3 = l2 >> 1;
int j3 = k2 >> 1;
int k3 = i;
int l3 = j;
if(landscape.earthCollision(k3, l3, true, worm))
{
collisionX = k3;
collisionY = l3;
return true;
}
if(k2 >= l2)
{
for(int i1 = 0; i1 < k2; i1++)
{
j3 += l2;
if(j3 >= k2)
{
j3 -= k2;
l3 += j2;
}
k3 += i2;
if(landscape.earthCollision(k3, l3, true, worm))
{
collisionX = k3;
collisionY = l3;
return true;
}
}
} else
{
for(int j1 = 0; j1 < l2; j1++)
{
i3 += k2;
if(i3 >= l2)
{
i3 -= l2;
k3 += i2;
}
l3 += j2;
if(landscape.earthCollision(k3, l3, true, worm))
{
collisionX = k3;
collisionY = l3;
return true;
}
}
}
return false;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -