当玩家使用touchDown输入时,我正试图在自上而下的视图中使3d角色向x y方向移动。 到目前为止,我有一个立方体,使用LibGDX ModelInstance,每当触摸屏幕时移动,但立方体只移动一定数量的单位;我真正想要的是立方体随着时间的推移移动那个设定数量的单位,无论玩家有多长时间都有被调用的触摸事件。
我有这样的事情:
instance.transform.translate(movementRight);
其中movementRight是Vector3(5,0,0); 当玩家使用touchDown输入时,这会将立方体移动到右侧5个单位。 如何将其挂钩以更新每一帧?任何帮助表示赞赏。非常感谢你!
答案 0 :(得分:3)
有一个布尔标志,指示多维数据集应该向右移动,如下所示:
boolean isMovingRight = false;
在 touchDown 事件中将其设置为 true ,在 touchUp 事件中将其设置为 false 。
然后在你的渲染方法中,做一下这样的事情:
if(isMovingRight){
instance.transform.translate(5*delta, 0, 0);
}
这会将实例每秒移动5个单位,这样做非常重要,使用delta,所以它以与 FPS 无关的相同速度移动。