问题是当玩家与blackB发生碰撞时,玩家不会停止。它慢慢地继续穿过blackB。 IBAction正在与游戏循环一起使用。我需要一种方法在玩家与blackB碰撞时完全冻结玩家。欢迎任何帮助,我是初学者程序员。谢谢!
播放器和blackB都是UIImageViews
- (IBAction)right
{
direction = kright;
if (direction == kright)
{
rightMovement = CGPointMake(kMovement,0);
blockVelocity.x += rightMovement.x;
player.center = CGPointMake(player.center.x + blockVelocity.x,player.center.y);
if(CGRectIntersectsRect(player.frame, blackB.frame))
{
if(player.center.x < blackB.center.x)
{
if(blockVelocity.x > 0)
{blockVelocity.x = zero;
}
}
}
}
}
答案 0 :(得分:0)
一个草率的答案,但在伪代码中:
- (IBAction)对{
if(playerCanMove == 1){ //移动玩家 }
}
加载游戏时将playerCanMove设置为1,并在碰撞时将其设置为0。