1

Ich versuche zu bestimmen, wo der Benutzer in Bezug auf das Zeichen auf dem Bildschirm mit cocos2d Sprites berührt. Wenn der Benutzer links vom Sprite klickt, möchte ich, dass das Sprite nach links und umgekehrt läuft. Mein Problem ist, wenn der Benutzer auf eine Seite klickt und sich auf die andere Seite bewegt, ohne die Berührung loszulassen (cctouchededntnt fire), läuft das Sprite weiter, aber in die falsche Richtung. Wo würde ich den Check (und wie) implementieren, um festzustellen, ob die Berührung des Benutzers auf die andere Seite des Charakters verschoben wurde?cocos2d Bestimmen, wo auf dem Bildschirm Benutzer berührt

aktuelle Code, den ich versuchte:

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

Dank.

Antwort

0

Sie müssen Ihren Touch-Standort wie folgt konvertieren.

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

Dann erhalten Sie die richtige Touch-Position auf Ihrer Ansicht in cocos2d.

0

Kannst du es nicht einfach in ccTouchesBegan einfügen? Das würde lösen es, glaube ich ...

0

Sie haben Ihren aktuellen Standort zu beachten, und die Verwendung dieser Funktion ccp (location.x, location.y) können Sie Ihre Sprite in diese Richtung bewegen, in dem Sie

wollen