1

ユーザーがcocos2dスプライトを使用して画面上の文字に触れている場所を特定しようとしています。ユーザーがスプライトの左にクリックすると、スプライトが左に移動し、その逆になります。 私の問題は、ユーザーが一方の側をクリックしてタッチを離さずに(cctouchended doesnt fire)他の側に移動すると、スプライトは実行を続けますが、間違った方向に向いています。ユーザーの接触がキャラクターの反対側に移動したかどうかを確認するためのチェック(および方法)はどこで実装されますか?私が試したcocos2d画面上のユーザーが接触している場所を特定する

現在のコード:

- (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; 
    } 
} 

感謝。

答えて

0

このようにタッチ位置を変換する必要があります。

CGPoint location = [touch locationInView: [touch view]];  
location = [[CCDirector sharedDirector] convertToGL: location]; 

次に、cocos2dで正しいタッチ位置を取得します。

0

代わりにccTouchesBeganに入れることはできませんか?それは解決するだろうと思う...

0

あなたの現在の場所をメモし、この関数を使用してccp(location.x、location.y)あなたはあなたがしたい方向にスプライトを移動することができます

関連する問題