我想让用户选择操纵杆的位置。即,当用户触摸一个位置时,操纵杆将出现在那里并准备好使用,并在手指松开时移除。
-(void) ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
if ([self getChildByTag:kTagJoyStick] == nil) {
[self addJoystickWithPosition:[Helper locationFromTouches:touches]];
}
}
-(void) ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
if ([self getChildByTag:kTagJoyStick] != nil) {
[self removeChildByTag:kTagJoyStick cleanup:YES];
}
}
-(void) ccTouchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event {
[self ccTouchesEnded:touches withEvent:event];
}
(在 ccTouchesMoved 方法中什么都不做)
摇杆的更新方法是:
-(void) sneakyUpdate {
if ([self getChildByTag:kTagJoyStick] != nil) {
if (joystick.velocity.x < 0) {
[self controlLeft];
}
else if (joystick.velocity.x > 0) {
[self controlRight];
}
else {
[self controlStop];
}
}
else {
[self controlStop];
}
}
但结果是,操纵杆会出现并自动移除。但我的精灵不会移动。(我设置了断点,确实调用了偷偷摸摸的更新方法。但是joystick.velocity始终为0。(并且thumbSprite没有跟随我们的手指。请帮助我。
更新:事实证明我必须使用 2 个手指(一个用于触摸一次并让操纵杆出现,将我的手指移开,然后用另一根手指控制操纵杆)