描述:
我有一个项目现在快完成了,但我注意到碰撞并没有真正起作用。这是一款类似蛇的游戏,可以通过触摸屏进行控制,因此可以实现锐利(?,对不起德语)角度。目前我只留下一点容差(忽略前 2 个精灵)来启用一点转动。主要问题是精灵正在旋转,这会导致碰撞框尺寸过大。我没有使用任何游戏引擎或 OpenGL。
碰撞代码: offsetX & offsetY 是位图的宽度或高度/2,在蛇的头部调用。蛇(鸟)中的每个链接都是可放置的
public boolean doesHit(Placeable p) {
int xLen = Math.abs(this.x - p.x);
int yLen = Math.abs(this.y - p.y);
if (bmp != null) {
if (xLen < offsetX + p.offsetX && yLen < offsetY + p.offsetY)
return true;
} else {
if (xLen < Bird.BIG_W[Bird.mUseBird] / 2
&& yLen < Bird.BIG_H[Bird.mUseBird] / 2)
return true;
}
return false;
}
TL;DR / 问题:
有没有办法旋转 Rects 然后比较它们(首选,因为除此之外游戏已经完成)?或者最简单的方法是移植到 OpenGL/游戏引擎?