Как мой персонаж остается возле блока? - PullRequest
0 голосов
/ 24 февраля 2012

У меня проблема с обнаружением блоков / стен:

enter image description here

красный = символ

зеленый = блок / стена

Попытка: когда мой персонаж касается, например блок / стена на левой стороне, она должна оставаться на левой стороне.

int len = blocks.size();

for (int b = 0; b < len; b++) {

  Block block = block.get(i);

  Rectangle r1 = red.bounds;
  Rectangle r2 = block.bounds;

  if((r1.lowerLeft.y + r1.height/2) > (r2.lowerLeft.y - r2.height/2)) {
   ...
  }

  if((r1.lowerLeft.y - r1.height/2) < (r2.lowerLeft.y + r2.height/2)) {
   ...
  }

  if((r1.lowerLeft.x + r1.width/2) > (r2.lowerLeft.x - r2.width/2)) {
   ...
  }

  if((r1.lowerLeft.x - r1.width/2) < (r2.lowerLeft.x + r2.width/2)) {
   ...
  }
}

1 Ответ

0 голосов
/ 24 февраля 2012

Кажется, что вам просто нужно смешать код. Ваше условие, чтобы выяснить, находится ли оно сверху, затем вычисляет, что нужно было сделать, если оно было внизу. Просто обменивайтесь кодом в этих условиях, и я готов к работе!

...