2011-01-13 9 views
6

come spostare l'oggetto in posizioni specifiche.come spostare l'oggetto in posizioni specifiche in cocos2d

per esempi. sto avendo una piccola barra (larghezza = 50, altezza = 10). devo spostare questo come stantuffo manualmente. Voglio spostarmi solo in x ordinate (i limiti x = 20 (punto iniziale) a x = 50 (punto finale)) nessuna mossa su coordinate y. ma si muove da 50 a 10 dopo i movimenti senza movimento. alt text codifica: -

- (void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 
    if (isPlaying) { 
     UITouch *touch = [[event allTouches] anyObject]; 

     touchPosition = [touch locationInView:touch.view]; 
     if (CGRectContainsPoint(para3.boundingBox,touchPoint) 
       isDragging = YES; 

     touchOffset = para3.position.y - touchPosition.y; 

    } 
- (void)ccTouchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { 
if (isPlaying) { 
UITouch *touch3 = [[event allTouches] anyObject]; 
     float distanceMoved = 
     ([touch3 locationInView:touch3.view].y + touchOffset) - 
     para3.position.y; 
     float newY = para3.position.y + distanceMoved; 
     if (newY > 67 && newY < 99) 
      para3.position = CGPointMake(newY , para3.position.y ); 
     //para3.contentSize/2 
     if (newY >67) 
      para3.position = CGPointMake(67, para3.position.y); 
     if (newY < 99) 
      para3.position = CGPointMake(99, para3.position.y); 
    } 
} 
+0

Devi cercare i diversi sistemi di coordinate di Cocos e UIView. Quindi è necessario convertire il punto da locationInView. Non ricordo esattamente. Ma CCDirector è la classe che implementa questi metodi. ;-) Spero che questo sia stato d'aiuto. –

+1

para3.position = cpp (x, y); Devi usare cpp (x, y); invece di CGPointMake (x, y); usando cocos2d – 0xDE4E15B

+0

colpa mia, ccp (x, y); – 0xDE4E15B

risposta

2

spero di aver capito il problema perfettamente. Quello che avrei fatto in uno scenario del genere è includere il framework Chipmunk nel mio gioco e poi creare il mio stantuffo e cannone come oggetti della fisica. Una volta fatto, la velocità e la direzione (cioè l'angolo del proiettile) possono essere controllate tramite i metodi "ApplyImpulse" del framework. La velocità e l'angolo sarebbero stati controllati da Physics sé una volta vorrei fornire i valori iniziali ....

Problemi correlati