我正在使用此代码:https://github.com/libgdx/libgdx/wiki/A-simple-game
但我想改变雨滴消失的方式。我希望它在触摸时消失。
所以我补充说:
if (Gdx.input.justTouched()) {
if (Gdx.input.getX() > raindrop.getX() &&
Gdx.input.getX() < (raindrop.getX() + raindrop.getWidth()) &&
Gdx.input.getY() > raindrop.getY() &&
Gdx.input.getY() < (raindrop.getY() + raindrop.getHeight())) {
dropSound.play();
iter.remove();
}
}
但它运作不佳。
感谢。
答案 0 :(得分:0)
你可以做的是获取精灵的边界矩形,并检查你的鼠标是否在矩形内,以下代码可以帮助
if (Gdx.input.justTouched()) {
if (raindrop.getBoundingRectangle().contains(Gdx.input.getX, Gdx.input.getY()) {
dropSound.play();
iter.remove();
}
}
答案 1 :(得分:0)
使用camera.unproject(Vector)
将您的屏幕坐标从点击或触摸转换为您的游戏世界。这是必需的,因为原点不一定相同,使用相机你也可以放大,移动,旋转等等。 Unprojecting会处理所有这些,并为您提供与指针位置匹配的游戏世界坐标。
if (Gdx.input.justTouched()) {
Vector3 touchPos = new Vector3();
touchPos.set(Gdx.input.getX(), Gdx.input.getY(), 0);
camera.unproject(touchPos);
if (raindrop.contains(touchPos.x,touchPos.y)) {
dropSound.play();
iter.remove();
}
}