2012-04-02 2 views
0

Я пытаюсь расположить тело, используя физический движок с этим кодом:AndEngine положения тела

   float touchX = pp[0]; 
       float touchY = pp[1]; 
       float diffX = touchX - mBody.getPosition().x; 
       float diffY = touchY - mBody.getPosition().y;     
       mBody.setLinearVelocity(new Vector2((pp[0])/PhysicsConstants.PIXEL_TO_METER_RATIO_DEFAULT , (pp[1])/PhysicsConstants.PIXEL_TO_METER_RATIO_DEFAULT)); 

В Coords X и Y является из карты TMX плитки и 32 пикселей квадрата, я пытаюсь получить тело в физическом движке, чтобы перейти к определенным фрагментам на карте плитки (проведенной в массиве pp []), но вместо этого он переходит к случайному хаотическому пути. Является ли это правильным подходом к конвертации X, Y коордов и переходу к этому моменту? Спасибо

ответ

1

.setLinearVelocity не перемещает тело в определенное положение. Для этого вам нужно использовать .setTransform

+0

Спасибо за ответ - я попробовал setTransform(), который работает, но с учетом нескольких координат он слишком быстро перемещает тело – ITECH

0

.setLinearVelocity Как будто вы добавляете силу к телу и перемещаете его, чтобы он не двигался в нужное положение.

.setTransform как будто вы устанавливаете положение тела. Поэтому он не двигается медленно от А до В, но исчезает от А и внезапно появляется при B

Вы можете легко перемещать его по коду самостоятельно.

Смежные вопросы