ユーザーがジョイスティックの位置を選択できるようにしたい。つまり、ユーザーが 1 つの場所に触れると、ジョイスティックがそこに表示され、使用できる状態になり、指を離すと削除されます。
-(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];
}
}
しかし、その結果、ジョイスティックが表示され、自動削除されます。しかし、私のスプライトは動きません。(ブレークポイントを設定すると、sneakyUpdate メソッドが呼び出されました。しかし、joystick.velocity は常に 0 です。(そして、thumbSprite は指に追従しませんでした。助けてください。
更新:そして、2本の指を使用する必要があることがわかりました(1回タッチしてジョイスティックを表示させ、指を離してから、別の指を使用してジョイスティックを制御します)