Мне было интересно, есть ли способ специально переместить объект / объект +5 по оси X, или, в частности, сказать X = 300, например, Y = 127.
Причина, по которой я спрашиваю, состоит в том, что я хочу, чтобы мой игровой сервер мог специально устанавливать / обновлять координаты игрока через сетевой пакет, но я не могу найти какие-либо методы, которые позволили бы мне специально обновлять координаты, как только они были создано и добавлено в мир.
Моя структура игрока / сущности:
Итак, на данный момент у меня, по сути, есть класс, который расширяет абстрактный класс с базовыми свойствами, который выглядит следующим образом.
public class VisibleEntity extends Entity {
public String renderImage;
public Body entityBody;
public BodyDef bodyDef;
public VisibleEntity(float height, float width, float positionX, float positionY, boolean isStatic, World world ) {
this.height = height;
this.width = width;
this.positionX = positionX;
this.positionY = positionY;
this.isStatic = isStatic;
this.world = world;
this.entityBody = this.createNewVisibleEntity();
}
private Body createNewVisibleEntity() {
PolygonShape shape = new PolygonShape();
shape.setAsBox((this.width / 2) / Store.PIXELS_PER_METER, (this.height / 2) / Store.PIXELS_PER_METER);
bodyDef = new BodyDef();
bodyDef.type = this.isStatic ? BodyDef.BodyType.StaticBody : BodyDef.BodyType.DynamicBody;
bodyDef.position.set(this.positionX / Store.PIXELS_PER_METER, this.positionY / Store.PIXELS_PER_METER);
bodyDef.fixedRotation = true;
entityBody = world.createBody(bodyDef);
entityBody.createFixture(shape, 1f);
shape.dispose();
return entityBody;
}
@Override
public void update() {}
@Override
public void render() {}
}
и у меня есть класс игрока, который имеет следующий метод:
private void handleInputUpdate() {
float horizontalForce = 0f;
float verticalForce = 0f;
if (Gdx.input.isKeyPressed(Input.Keys.D)) horizontalForce += 1;
if (Gdx.input.isKeyPressed(Input.Keys.A)) horizontalForce -= 1;
if (Gdx.input.isKeyPressed(Input.Keys.W)) verticalForce += 1;
if (Gdx.input.isKeyPressed(Input.Keys.S)) verticalForce -= 1;
this.entityBody.setLinearVelocity((horizontalForce * 5), verticalForce * 5);
}