Подтвердить что ты не робот

Mesh node местоположение не обновлено, в cocos3d

Я разрабатываю настольную игру, используя 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

Почему я не могу найти местоположение в первый раз?

4b9b3361

Ответ 1

На основе вашего кода я считаю, что проблема в том, что BounceAction1 выполняется с длительностью 0,1, и поэтому статическое свойство Ball не обновлялось при выполнении инструкции NSLog. Чтобы проверить это, попробуйте вставить спящий режим перед оператором NSLog.