我的角色如何靠近一个街区?

时间:2012-02-24 12:32:38

标签: graphics geometry collision-detection

我遇到挡块/墙壁检测问题:

enter image description here

red = character

green = block / wall

尝试:当我的角色接触时,例如左侧的一个块/墙应该留在左侧。

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 :(得分:0)

好像你只需要混合代码。 你的条件是找出它是否在顶部然后计算如果它在底部必须做什么。只是在条件内交换代码,你就可以了,我猜!