gpt4 book ai didi

java - 使用 touchDragged 方法后,如何找到 libgdx 中 actor 的新位置?

转载 作者:行者123 更新时间:2023-12-01 18:10:24 25 4
gpt4 key购买 nike

我需要你的帮助!

import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.InputProcessor;
import com.badlogic.gdx.graphics.Texture;

public class TriAngle extends Figure implements InputProcessor {

private float w = 800;
private float h = 600;


public TriAngle() {

setTextureRegion(new Texture(Gdx.files.internal("TriAngle.png")));
setBounds(0, 0, w / 4, h / 4);
Gdx.input.setInputProcessor(this);
}
@Override
public boolean keyDown(int i) {
return false;
}

@Override
public boolean keyUp(int i) {
return false;
}

@Override
public boolean keyTyped(char c) {
return false;
}

@Override
public boolean touchDown(int screenX, int screenY, int pointer, int button) {

return true;
}

@Override
public boolean touchUp(int screenX, int screenY, int pointer, int button) {
return false;
}

@Override
public boolean touchDragged(int screenX, int screenY, int pointer) {
if(screenX>0&&screenX<200) {
this.setPosition(screenX, screenY, 0);
}
return true;
}

@Override
public boolean mouseMoved(int x, int y) {
/* if (x >= 0) {
this.setPosition(x,y);
}*/

return true;
}

@Override
public boolean scrolled(int i) {
return false;
}
}

在 touchDragged 方法中,仅当鼠标单击位于 0 到 200 之间的 x 坐标时,我才会移动 actor。我需要能够通过单击 actor 当前位置所在的位置来移动 actor。

最佳答案

使用 Actor.getX()Actor.getWidth() 方法,您可以知道其当前位置以及触摸是否发生在其边界内:

@Override
public boolean touchDragged(int screenX, int screenY, int pointer) {
if(screenX >= getX() && screenX <= getX() + getWidth() &&
screenY >= getY() && screenY <= getY() + getHeight()) {
this.setPosition(screenX, screenY, 0);
}
return true;
}

关于java - 使用 touchDragged 方法后,如何找到 libgdx 中 actor 的新位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60478322/

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