如何在处理中创建矩形碰撞?

时间:2013-07-16 16:23:36

标签: collision-detection processing collision

我正在制作平台游戏,我需要一些非常基本的碰撞,我似乎无法想出自己。它似乎总能找到一种方法,可以通过屏障飞离屏幕,或者卡在天花板上。

这是我到目前为止所拥有的:

    if (player.y-8+player.height>loc.y && player.y<loc.y+height-8) {
      if (player.x+player.width>loc.x && player.x<loc.x+8) {
        player.xvelocity=0;
        player.x = loc.x-player.width-1;
      }
      if (player.x+8>loc.x && player.x<loc.x+width) {
        player.xvelocity=0;
        player.x = loc.x+dim+1;
      }
    }



    if (player.x+player.width>loc.x && player.x<loc.x+width) {
      if (player.y+player.height>loc.y && player.y<loc.y+8) {
        player.yvelocity=0; 
        player.y = loc.y-player.height;
        ground = true;
      }
      if (player.y+8>loc.y && player.y<loc.y+height) {
        player.yvelocity=0; 
        player.y = loc.y+dim;
      }
    }

播放器的宽度为15,高度为25,方块的宽度为16,高度为16。

我曾尝试在互联网上寻找答案,但我得到的只是碰撞检测(检查两个物体是否相交),我已经知道该怎么做了。感谢。

此外,我正在处理方形/矩形的碰撞。

1 个答案:

答案 0 :(得分:0)

啊,我找到了问题的解决方案。对于碰撞检测和处理有困难的人,请查看http://www.hobbygamedev.com/adv/2d-platformer-advanced-collision-detection/它帮助了我。