【发布时间】:2014-02-19 04:21:16
【问题描述】:
我想创建一个允许两个玩家在同一设备上打乒乓球的移动应用程序。每个球员将抓住设备的一端,并能够在 y 轴上来回移动他们的守门员。我正在使用带有 LibGDX 的 Java 开发游戏,但我无法让多个输入工作。我可以让平台记录输入来自左侧或右侧(确定哪个玩家正在移动),我可以使用它来单独移动每个玩家,但我不能让他们这样做同时。
这是我目前设置运动的方式:
PlayerPaddle playerOnePaddle = ((GameScreen) currentScreen).getPlayerOnePaddle();
PlayerPaddle playerTwoPaddle = ((GameScreen) currentScreen).getPlayerTwoPaddle();
Vector2 touchPos = new Vector2(Gdx.input.getX(), Gdx.input.getY() + playerOnePaddle.height / 2);
if (Gdx.input.getX() < Gdx.graphics.getWidth() / 2)
{
playerOnePaddle.pos.y = Gdx.graphics.getHeight() - touchPos.y;
}
if (Gdx.input.getX() > Gdx.graphics.getWidth() / 2)
{
playerTwoPaddle.pos.y = Gdx.graphics.getHeight() - touchPos.y;
}
这适用于单独输入,这意味着我可以点击屏幕左侧并移动左侧玩家,我可以点击屏幕右侧并移动右侧玩家,但我不能同时移动每个玩家时间,这将打败游戏的重点。我需要具体的示例来说明如何实现这一点,因为我对 LibGDX 输入的经验非常有限,并且在四处搜索之后我无法找到任何正确的方法来做到这一点。我考虑过对第二个输入进行多线程处理,但这只会使代码混乱并使逻辑不对称
【问题讨论】:
标签: java android io touch libgdx