我正在开发RTS游戏,我需要移动由精灵表示的角色,类似于您在《帝国时代》或《魔兽争霸》中看到的角色:左键单击选择,然后移到右键单击位置。>
我知道我可以在演员上叫Actions.moveTo()
,但是我没有演员,有精灵。我使用一个阶段来绘制UI(例如按钮和资源信息)。
我有以下代码:
@Override
public void render(float delta) {
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
moveCamera();
camera.update();
renderer.setView(camera);
renderer.render();
sb.setProjectionMatrix(camera.combined);
renderUnits();
stage.act();
stage.draw();
}
private void renderUnits() {
sb.begin();
for (Unit u : logicMap.units) {
sb.draw(u.sprite, u.position.x, u.position.y, u.width, u.height);
}
sb.end();
}
renderUnits()
方法将呈现我拥有的每个单元,因此该想法将只是在每帧中修改单元位置并使Sprite移至所需位置。
我应该如何去做?我认为我需要一个不同的线程来处理移动,因此它不会锁定主游戏,但我不确定。