Описание:
У меня есть проект, который почти закончен, но я заметил, что столкновение не работает. Это змеиная игра, которой можно управлять через сенсорный экран, поэтому возможны острые (?, Извините, немецкие) углы. На данный момент я просто оставляю немного терпимости (игнорирую первые 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 / игровой движок?