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