Java libGDX着陆困难
我在代码中实现着陆时遇到问题。 我使用迭代器在屏幕上运行表示球纹理的圆圈。 在下面的代码中,我删除了所有与我当前的问题无关的部分,即当用户触摸球时,将球从屏幕上移除。目前,我在渲染和使用中调用下面的方法:Java libGDX着陆困难,java,android,libgdx,Java,Android,Libgdx,我在代码中实现着陆时遇到问题。 我使用迭代器在屏幕上运行表示球纹理的圆圈。 在下面的代码中,我删除了所有与我当前的问题无关的部分,即当用户触摸球时,将球从屏幕上移除。目前,我在渲染和使用中调用下面的方法: int x1 = Gdx.input.getX(); int y1 = Gdx.input.getY(); Vector3 input = new Vector3(x1, y1, 0); cam.unproject(input); 并将输入用作ballsIte
int x1 = Gdx.input.getX();
int y1 = Gdx.input.getY();
Vector3 input = new Vector3(x1, y1, 0);
cam.unproject(input);
并将输入用作ballsIteratorinput;的参数;。问题是,有人告诉我,为了停止触碰效果,我需要使用触地方法中的代码。但是我该怎么做呢?下面的方法的完整版本我必须在render方法中加入,不管是否有触地效果,我尝试在触地方法中实现InputProcessor并重复该方法的代码,但没有在render方法中调用它,因此它不起作用,当我试图在渲染内部调用它时,我不知道int指针,int按钮要使用什么参数。。。
问题是,在完成上述所有操作之后,我如何在代码中使用触地方法
private void ballsIterator(Vector3 input){
Iterator<Circle> iterBall = balls.iterator();
while (iterBall.hasNext()) {
Circle ball = iterBall.next();
if (dog.velocity.x != 0) {
if (ball.contains(input.x, input.y)) {
iterMeteor.remove();
}
} else {
iterMeteor.remove();
}
}
}
使用Springbua解释,我通过划分迭代器方法来解决问题。重复必要的部分并将负责单击的代码复制到一个新的公共静态void方法,该方法使用Vector3作为参数,在实现InputProcessor的类中,我创建了一个Vector3,并为其提供了触地参数,调用保存click部分的新迭代器方法,并使用InputProcessor类的Vector3作为其参数。存储Vector3 touchPos并将其设置为触地:touchPos=cam.unprojectnew Vector3screenX,screeny,0。在touchUp中,只需将其设置为null,在render中,您可以说如果touchPos!=零BallsiterTouchPos;删除了我的预览评论,因为我按照你的解释到处玩,并设法实现了我想要的。非常感谢。如果你解决了你的问题,你可以发布解决方案作为答案并接受它,它可能会帮助其他人解决同样的问题。我会的,但因为我仍在学习我的项目有点混乱,它的大部分结构基于基洛波特的僵尸鸟教程。只需写,到底是什么解决了您在这里描述的问题,我想这应该足够了,代码不是真正需要的,或者只是某种伪代码,就像我在评论中所说的那样。