У меня есть спрайт в физическом мире, не зарегистрированный с помощью touchArea, он перемещается только при столкновении с другими спрайтами и регулярно отскакивает на границе физического мира. Теперь я пытаюсь перемещать его случайным образом, когда не сталкивается. Я стараюсь, чтобы придать ему линейную скорость, но она движется по нижнем правом углу и оставаться там без отскакивая назадandengine move sprite заблокирован на углу
if(Sprite.getX() > 0) {
bodySprite.setLinearVelocity(new Vector2(VELOCITY_X, VELOCITY_Y));
} else if(Sprite.getX() + Sprite.getWidth() > CAMERA_WIDTH) {
bodySprite.setLinearVelocity(new Vector2(-VELOCITY_X, -VELOCITY_X));
}
У меня есть wallFixtureDef (0, 0.5f, 0.5f), примененный к моим краям экрана, и все спрайты хорошо отскакивают от ребер. Я хотел бы держать спрайтов всегда в движении, избегая их остановки. – lucignolo
Я меняю LinearVelocity с: Vector2 shoot = new Vector2 ((originX - fingerX), (originY - fingerY)); body.setLinearVelocity (стрелять); Теперь спрайт перемещается точно в нужное положение, но слишком быстро. Как установить значение скорости? – lucignolo
Умножьте вектор на какое-то значение <1, затем он станет медленнее (короче). –