2011-11-24 35 views
0

我试图去接应检测Java进行cocos2d的Android和继承人的代码,我有怎么做碰撞检测在java中

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)); 
} 

,但由于某种原因,它不工作...为什么?

+5

我喜欢CIA和石油行业的合谋检测:-) –

+0

它以什么方式不起作用? –

+0

以及合谋检测的代码工作正常,但它没有设置球员位置回来..:/ – user1042757

回答

1

您正在分别将oldx和​​设置为player.getPosition().xplayer.getPosition().y。您在碰撞检测if-statement中使用完全相同的检查,因此您基本上将位置设置为与原来相同的位置。

在检查发生碰撞之前,您需要知道玩家想要移动到的位置,然后只是不允许玩家在此移动(即不更新其X和Y)。