1

J'essaie de déterminer où l'utilisateur touche par rapport au caractère sur l'écran en utilisant des sprites cocos2d. Lorsque l'utilisateur clique à gauche de l'image-objet, je souhaite que l'image-objet s'exécute vers la gauche et vice-versa. Mon problème est que lorsque l'utilisateur clique sur un côté et se déplace de l'autre côté sans laisser tomber le contact (cctouchended ne se déclenche pas), l'image-objet continue à tourner, mais dans la mauvaise direction. Où puis-je implémenter la vérification (et comment) pour déterminer si le toucher de l'utilisateur s'est déplacé de l'autre côté du personnage?cocos2d déterminer où l'utilisateur touche à l'écran

code actuel que j'ai essayé:

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

Merci.

Répondre

0

Vous devez convertir votre emplacement tactile comme ceci.

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

Ensuite, vous obtenez l'emplacement tactile correct sur votre vue dans cocos2d.

0

Vous ne pouvez pas simplement le mettre dans ccTouchesBegan à la place? Cela résoudrait, je pense ...

0

Vous devez noter votre emplacement actuel, et en utilisant cette fonction ccp (location.x, location.y) vous pouvez déplacer votre sprite dans la direction que vous voulez