gpt4 book ai didi

java - 如何通过拖动鼠标/手指来移动 body / Actor ?

转载 作者:太空宇宙 更新时间:2023-11-04 10:30:31 27 4
gpt4 key购买 nike

我目前正在使用 libgdx 用 Ja​​va 开发空气曲棍球游戏。

游戏的重点是根据平台使用触摸或鼠标移动 handle ,并用它来触摸冰球以使其移动。

我进行了一些搜索,但找不到合适的解决方案。我知道有手势监听器、touchDraggedsetTransformapplyForce 等方法...

现在,为了测试它,我使用 setLinearVelocity, body 获得鼠标点击的速度。这样,当 handle 接触冰球时,它就会完全按照我想要的方式进行,接触监听器工作并且冰球朝正确的方向移动,但显然我不希望此方法将移动应用到 handle 。

那么我如何使用触摸来移动它并确保 handle 击中冰球?

最佳答案

您可以使用setTransform设置 body 位置。为了用鼠标/手指移动它,您可以实现 InputAdaptertouchDragged 方法,如下所示:

Gdx.input.setInputProcessor(new InputAdapter() {
public boolean touchDragged(int screenX, int screenY, int pointer) {
body.setTransform(screenX, Gdx.graphics.getHeight() - screenY, 0);
return true;
}
});

而且我认为你应该将你的棍子定义为运动体:

Like static bodies, they do not react to forces, but like dynamic bodies, they do have the ability to move. Kinematic bodies are great for things where you, the programmer, want to be in full control of a body's motion, such as a moving platform in a platform game.

出于好奇,我自己做了一个测试。棍子是运动体,而球是动态的。正如您所看到的,棍子不受任何力的影响:

box2d simulation

关于java - 如何通过拖动鼠标/手指来移动 body / Actor ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50049357/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com