У меня есть несколько лет опыта работы в Java и Slick2D, и я пытаюсь перенести игру в libgdx из-за того, что это намного лучшая библиотека. Однако у меня возникла простая проблема с перемещением спрайта на экране. Должна быть какая-то парадигма, которую я не понимаю с помощью этого API. Я переделал свой код следующим образом. Он распознает ввод и запускает его через все мои сущности и сетевые системы как на сервере, так и с сервера, но спрайт остается в том же месте. Любая помощь будет замечательной.Перемещение спрайта в LibGDX
Мои создать() метод:
public void create() {
//Check to see if we are using external server or localhost
ClientNetworkManager.setLocalhostAsHost(Constant.useLocalhost, this);
//Begin application setup
float w = Gdx.graphics.getWidth();
float h = Gdx.graphics.getHeight();
camera = new OrthographicCamera(1280,900);
batch = new SpriteBatch();
//Load assets into memory
texture = new Texture(Gdx.files.internal("Sprites/Ash.png"));
//texture.setFilter(TextureFilter.Linear, TextureFilter.Linear);
sprite = new Sprite(texture);
sprite.setSize(256,256);
sprite.setPosition(44, 666);
//Begin external network setup
setPlayerPointer(null);
this.connection = new ClientConnectionThread(this);
getClientConnectionThread().setCurrentPing(0);
}
My render() method:
public void render() {
//Render logic
Gdx.gl.glClearColor(1, 1, 1, 1);
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
if (connection.isActive() && !Constant.performEssentialTasksOnly) {
InputManager.handlePlayerInput(this);
batch.setProjectionMatrix(camera.combined);
camera.update();
batch.begin();
batch.draw(sprite,playerPointer.getCurrentX(),playerPointer.getCurrentY());
System.out.println(playerPointer.getCurrentX());
batch.end();
}
}
Значения методов getCurrentX/Y все представления правильно, так что это не проблема. Я чувствую, что это должно быть что-то очевидное.
Используйте 'sprite.setPosition()', а затем используйте 'sprite.draw (пакет)'. Также сначала сделайте 'camera.update()', а затем 'batch.setProjectionMatrix()' – noone