2013-09-26 1 views
0

Мне нужна помощь для перемещения тела (не спрайта) вдоль оси x в левом или правом направлении, используя экранный контроллер. У меня есть плеер в классе gamescene, который находится в центре экрана, а два слева - & кнопки правого контроллера.
Мои ожидания в том, что тело должно двигаться по оси X до определенных точек, например, -100 или -200 точек, когда игрок нажимает на левый или правый контроллер кнопки.
Я использую следующий код, чтобы переместить тело, которое не работает
Как перемещать тело плиты слева или справа в andengine

public void turnLeft() 
{ 
body.setTransform(body.getPosition().x-100, body.getPosition().y) 
} 

Может кто-нибудь помочь мне в этом, пожалуйста?

С уважением,
Дипак

+0

Попробуйте использовать setLinearVelocity. – Prmths

ответ

1

Если вы хотите использовать SetTransform() вы должны использовать его с объектом Vector2. Ваш пример будет:

private float p2m = PhysicsConstants.PIXEL_TO_METER_RATIO_DEFAULT; 

public void turnLeft() { 
    body.setTransform(new Vector2((body.getPosition().x-100)/p2m, body.getPosition().y/p2m), 0); 
} 

Вам нужно разделить на P2M = 32, так как box2d не работает в пикселях, а в метрах (читайте об этом здесь: AndEngine: Use of PIXEL_TO_METER_RATIO).

+0

Эй спасибо ... это работает :-) – deepaksk

+0

Нет проблем. Продолжайте создавать! – Uros

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