如何在碰撞后更改触摸效果 - 精灵套件

时间:2014-09-11 20:55:29

标签: ios objective-c sprite-kit

我对Objective C很新,希望有人能帮我解决问题:

当我触摸显示屏时,有一个角色跳到右边。如果它接触到场景的右侧,它应该改变方向并在每次触摸时跳到左侧。这是跳到右边的代码:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {  
    [hero.physicsBody applyImpulse: CGVectorMake(10, 20)];  
}

(我应该使用touchesBegan方法吗?)

如果角色接触到屏幕的右侧,我需要这个:

[hero.physicsBody applyImpulse: CGVectorMake(-10, 20)];

碰撞检测工作正常,我只需要知道在程序检测到碰撞时如何使用这些代码而不是第一行代码。那么我应该在哪里放置这两行代码呢?

我希望你能理解我的困境,并能帮助我......

非常感谢!

1 个答案:

答案 0 :(得分:0)

@property (nonatomic) BOOL jumpRight;  //Yes = Right, No = Left

与墙碰撞时,更换布尔:

self.jumpRight = YES; or self.jumpRight = NO;

在touchesEnded:

if(self.jumpRight == YES)
[hero.physicsBody applyImpulse: CGVectorMake(10, 20)];
else
[hero.physicsBody applyImpulse: CGVectorMake(-10, 20)];

如果设置了碰撞检测,应该可以解决这个问题:)