Sto sviluppando un gioco da tavolo utilizzando Ball
, in cocos3d
. In che ho dato un'azione in touchevent
. Sto stampando la posizione sulla console usando NSLog()
.Posizione nodo mesh non aggiornata, in cocos3d
Ecco il codice
-(void) touchEvent: (uint) touchType at: (CGPoint) touchPoint {
CCActionInterval *BounceAction1=[CC3MoveTo actionWithDuration:0.1 moveTo:cc3v(0.0, -5.0, -0.7)];
switch (touchType) {
case kCCTouchBegan:
[Ball runAction:BounceAction1];
NSLog(@"Location of x=%f and y=%f", Ball.globalLocation.x, Ball.globalLocation.y);
break;
}
Qui, 'Ball' è un MeshNode
. La sua posizione è all'origine cc3v(0.0, 0.0, 0.0)
.
Quando corro e tocco, trovo la pallina che si muove nella posizione specificata. Ma ho posizione della sfera come:
Location of x=0.000000 and y=0.000000
Quando tocco di nuovo, trovo la palla non è in movimento (come si è già spostato nella posizione specificata). Ma poi mostra la posizione di Ball come:
Location of x=0.000000 and y=-6.000000
Perché non riesco a trovare la posizione la prima volta?
Perché, la posizione iniziale per la palla sarà (0, 0) – rptwsthi
In realtà il mio problema è, dopo il movimento anche ottengo la posizione invariata, cioè ottenere la posizione di partenza. –
Quindi devi toccare il sub nodo dello shader del tuo nodo – rptwsthi