cocos2dスプライトを使用して、画面上のキャラクターに対してユーザーがどこに触れているかを判断しようとしています。ユーザーがスプライトの左側をクリックすると、スプライトが左側に実行されるようにします。その逆も同様です。私の問題は、ユーザーがタッチを離さずに一方の側をクリックしてもう一方の側に移動すると(cctouchendedは起動しません)、スプライトは実行を続けますが、方向が間違っていることです。ユーザーのタッチがキャラクターの反対側に移動したかどうかを判断するためのチェック(および方法)をどこに実装しますか?
私が試した現在のコード:
- (void)ccTouchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
CGPoint touchLocation = [touch locationInView: [touch view]];
CGPoint moveDifference = ccpSub(touchLocation, _character.position);
if (moveDifference.x < 0) {
_character.flipX = YES;
} else {
_character.flipX = NO;
}
}
ありがとう。