0

我正在开发一个平台游戏,我需要一些我自己似乎无法想出的非常基本的碰撞。它似乎总能找到一种方法来闪过屏幕并飞出屏幕,或者卡在天花板上。

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

    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。

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

我也在研究正方形/矩形的碰撞。

4

1 回答 1

0

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

于 2013-07-17T01:32:34.987 回答