gpt4 book ai didi

java - Libgdx touchdragged 返回奇怪的 x,y 坐标

转载 作者:行者123 更新时间:2023-11-30 08:48:15 25 4
gpt4 key购买 nike

我正在尝试让鱼角色在玩家放手指的任何地方移动。我正在使用 libgdx 的触摸拖动来执行此操作。出于某种原因,注册触摸的 x 和 y 坐标只给我一个数字,而且似乎不在屏幕上。我已经阅读了与 libgdx touchdragged here 相关的其他问题,但找不到其他人遇到这样的问题。现在,我只是试图让鱼沿基本方向(N、NW、W 等)移动。最终我将使用 delta 使其移动到触摸位置。

这是它在控制台中不断给我的坐标:

08-17 15:12:16.181  11497-11595/? I/2367﹕ 721
08-17 15:12:16.211 11497-11595/? I/2362﹕ 728
08-17 15:12:16.231 11497-11595/? I/2359﹕ 733
08-17 15:12:16.251 11497-11595/? I/2356﹕ 736

我正在使用 Gdx.app.log 来记录这些值,但我无法理解它。这是 onClick 的代码:

public void onClick(int clickX, int clickY) {
Gdx.app.log(String.valueOf(clickX),String.valueOf(clickY));
if (this.getX() - clickX < 0){
velocity.x = -5;
}
if (this.getX() - clickX > 0){
velocity.x = 5;
}
if (this.getY() - clickY < 0){
velocity.y = 5;
}
if (this.getY() - clickY > 0) {
velocity.y = -5;
}
}

最后,inputHandler 类(相关区域):

@Override
public boolean touchDragged(int screenX, int screenY, int pointer) {
myFish.onClick(screenX,screenY);
return true;
}

目前我的鱼一直向左下方移动,无论我做什么,我认为这是由于奇怪的 x,y 坐标。

我也尝试过使用 Gdx.input.getX()Gdx.input.getY(),但总是遇到同样的问题(大的单一坐标) .

我不确定 screenXscreenY 是否是要使用的正确值,但同时使用了 screenXGdx。 input.getX() 仍然给我同样的问题。

最佳答案

不确定这是否会完全回答您的问题,但您需要取消投影您的点击/拖动坐标以将它们转换为您的游戏世界坐标系。这是这样做的:

@Override
public boolean touchDragged(int screenX, int screenY, int pointer) {
Vector3 v = new Vector3(screenX, screenY, 0);
v = camera.unproject(v);
myFish.onClick(v.x, v.y);
return true;
}

关于java - Libgdx touchdragged 返回奇怪的 x,y 坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32059053/

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