gpt4 book ai didi

java - Libgdx 光标捕获后消失

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

我将鼠标设置为“捕获”

Gdx.input.setCursorCatched(true);

但启用此设置后光标消失了。我正在开发一个等距 2d rts 游戏,我确实需要强制光标留在窗口内,但我显然也需要显示光标。我正在使用平铺 map 来绘制 map 。

最佳答案

我有一个游戏,无论何时/无论玩家触碰或触碰,我都会画一个点,如果你捕获光标,它就会消失,这是预期的行为。

要解决此问题,您必须使用 TextureSpriteTextureRegion 自己绘制鼠标。这是一个例子:
绘制光标:

public class MyCursor {

private TextureRegion cursor;
private float x, y;

public MyCursor(TextureRegion cursorRegion) {
cursor = cursorRegion;
}

public void render(SpriteBatch spriteBatch) {
spriteBatch.begin();
spriteBatch.draw(cursor, x, y);
spriteBatch.end();
}

public void setPosition(float x, float y) {
this.x = x;
this.y = y;
}
}

处理输入:

public class MyInput extends InputAdapter {

private OrthographicCamera camera;
private MyCursor myCursor;

public MyInput(OrthographicCamera camera, MyCursor myCursor) {
this.camera = camera;
this.myCursor = myCursor;
}

@Override
public boolean mouseMoved(int screenX, int screenY) {
Vector3 temp = camera.unproject(new Vector3(screenX, screenY, 0));
myCursor.setPosition(temp.x, temp.y);
return true;
}
}

另外不要忘记启用输入:

public class MyGame extends Game {

@Override
public void create() {
OrthographicCamera camera = new OrthographicCamera();
TextureRegion cursorRegion = new TextureRegion(new Texture("myCursor.png"));
MyCursor cursor = new MyCursor(cursorRegion);
MyInput myInput = new MyInput(camera, cursor);
Gdx.input.setInputProcessor(myInput);
}
}

关于java - Libgdx 光标捕获后消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55270902/

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