18

Ballを使ってボードゲームを開発していcocos3dます。その中で私はアクションを与えましたtouchevent。を使用してコンソールに場所を出力していNSLog()ます。

ここにコードがあります

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

もう一度タッチすると、ボールが動いていないことがわかります(すでに指定された場所に移動しているため)。ただし、ボールの位置は次のように表示されます。

Location of x=0.000000 and y=-6.000000

最初に場所が見つからないのはなぜですか?

4

1 に答える 1

1

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

于 2013-10-03T16:34:47.377 に答える