2013-05-23 18 views
18

Ballを使用してボードゲームを開発中です。cocos3dです。その中で私はtoucheventで措置を与えました。私はNSLog()を使用してコンソールに場所を印刷しています。ここでcocos3dのメッシュノードの位置が更新されていません

コードここ

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

で、 'ボールは' MeshNodeです。場所は原点であるcc3v(0.0, 0.0, 0.0)です。

私が走って触れると、ボールが指定された位置に移動しています。しかし、私のようにボールの位置を取得する:私はもう一度タッチすると

Location of x=0.000000 and y=0.000000 

、私は(それがすでに指定された場所に移動したとして)ボールが動いていない見つけます。しかし、それはボールの位置を次のように示しています:

なぜ私は最初にその場所を見つけることができませんか?

+0

ボールの初期位置は(0、0) – rptwsthi

+0

なので、実際には私の問題は、動きの後もポジションが変わらない、つまり開始位置になるということです。 –

+0

次にノードのシェーダのサブノードに触れていなければなりません – rptwsthi

答えて

1

あなたのコードによれば、BounceAction1は持続時間0.1で実行されるため、NSLogステートメントの実行時にBallの静的プロパティが更新されていないと思います。これをテストするには、NSLogステートメントの直前にsleepを挿入してみてください。

関連する問題