在对象上施加力

时间:2014-08-17 22:35:15

标签: ios sprite-kit touchesbegan

如果我理解正确,当我“applyForce”时,只要应用applyForce,它就会在向量方向和力量上推动我的对象。 但是当我尝试在'touchesBegan'中对身体施加力时(因为我希望它只要我触摸屏幕就会向上推)所有我得到的是一点点推动使它跳跃几个像素然后它下降为physicsWorld设置的结果。 (我也希望当'touchesEnded'时力停止推动) 任何人的想法? 感谢

(Xcode 5,spriteKit)

1 个答案:

答案 0 :(得分:2)

touchesBegan:触摸屏幕时只会触发一次。

只要你的手指触摸屏幕就可以继续做某事,你可以这样做:

创建BOOL ivar

@implementation MyScene
{
    BOOL theFingerTouches;
}

接下来注册触摸,因为你已经知道如何

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    theFingerTouches = true;
}

确保在触摸不再存在时进行注册

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
    theFingerTouches = false;
}

最后使用update:方法根据您的BOOL执行您需要的操作

-(void)update:(CFTimeInterval)currentTime
{
    if(theFingerTouches == true)
    {
        // some code here
    }
}