Libgdx 光标在捕获后消失
Libgdx cursor disappears after catched
我将鼠标设置为 "catched" 和
Gdx.input.setCursorCatched(true);
但是启用此设置后光标消失了。
我正在开发一个等距 2d rts 游戏,我确实需要将光标强制留在 window 内,但我显然也需要显示光标。
我正在使用 Tiled 地图绘制地图。
我有一个游戏,我画了一个点 wherever/whenever 玩家向下或向上触摸,如果你抓住光标它就会消失,这是预期的行为。
要解决此问题,您必须使用 Texture
、Sprite
或 TextureRegion
自己绘制鼠标。这是一个例子:
绘制光标:
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);
}
}
我将鼠标设置为 "catched" 和
Gdx.input.setCursorCatched(true);
但是启用此设置后光标消失了。 我正在开发一个等距 2d rts 游戏,我确实需要将光标强制留在 window 内,但我显然也需要显示光标。 我正在使用 Tiled 地图绘制地图。
我有一个游戏,我画了一个点 wherever/whenever 玩家向下或向上触摸,如果你抓住光标它就会消失,这是预期的行为。
要解决此问题,您必须使用 Texture
、Sprite
或 TextureRegion
自己绘制鼠标。这是一个例子:
绘制光标:
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);
}
}