我正在尝试在java中为cocos2d进行共谋检测,以及我拥有的代码
float oldx = player.getPosition().x;
float oldy = player.getPosition().y;
if((player.getPosition().y + player.getContentSize().height > building1.getPosition().y) &&
(player.getPosition().y < building1.getPosition().y + building1.getContentSize().height) &&
(player.getPosition().x + player.getContentSize().width > building1.getPosition().x) &&
(player.getPosition().x < building1.getPosition().x + building1.getContentSize().width))
{
player.setPosition(CGPoint.ccp(oldx, oldy));
}
但由于某种原因它不起作用......为什么?
答案 0 :(得分:1)
您分别将oldx
和oldy
设为player.getPosition().x
和player.getPosition().y
。您在碰撞检测if-statement中使用完全相同的检查,因此您基本上将位置设置为它所在的位置。
在检查发生碰撞之前,您需要知道玩家想要移动的位置,然后不允许玩家移动到那里(即不要更新他们的X和Y)。