java-具有多个触摸输入的LIbGDX多人乒乓球

java-具有多个触摸输入的LIbGDX多人乒乓球,第1张

概述我想创建一个移动应用程序,允许两个玩家在同一设备上打乒乓球.每个玩家都将抓住设备的一端,并能够在y轴上前后移动守门员.我正在使用带有w/LibGDX的Java开发游戏,但无法获得多个输入才能正常工作.我可以这样做,以便平台记录输入是从左侧还是从右侧输入(确定哪个玩家正在移动),并

我想创建一个移动应用程序,允许两个玩家在同一设备上打乒乓球.每个玩家都将抓住设备的一端,并能够在y轴上前后移动守门员.我正在使用带有w / 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输入的经验非常有限,经过四处搜寻之后,我找不到任何正确的方法来执行此 *** 作.我考虑过对第二个输入进行多线程处理,但这只会使代码混乱,并使逻辑不对称

解决方法:

屏幕上的每一次触摸都给出一个int指针.第一次触摸将获得指针0,第二次触摸将获得指针1.如果您让该触摸发生,则释放指针,并将其提供给下一次触摸(它将始终获取第一个空闲指针).我建议您检查一下前5个指针,以确保:

for (int i=0; i<5; i++){    if (!Gdx.input.istouched(i)) continue;    Vector2 touchPos = new Vector2(Gdx.input.getX(i), Gdx.input.getY(i) + playerOnePaddle.height / 2);    if (Gdx.input.getX(i) < Gdx.graphics.getWIDth() / 2){        playerOnePaddle.pos.y = Gdx.graphics.getHeight() - touchPos.y;    }    if (Gdx.input.getX(i) > Gdx.graphics.getWIDth() / 2){        playerTwoPaddle.pos.y = Gdx.graphics.getHeight() - touchPos.y;    }}

顺便说一句,您应该使用相机并取消触摸的投射:

camera.unproject(touchPos.set(Gdx.input.getX(i), Gdx.input.getY(i), 0));

然后将touchPos.x和touchPos.y用作触摸.这样,它将在每种屏幕分辨率下都相同.

总结

以上是内存溢出为你收集整理的java-具有多个触摸输入的LIbGDX多人乒乓球全部内容,希望文章能够帮你解决java-具有多个触摸输入的LIbGDX多人乒乓球所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1077388.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存