あなたはタッチ検出のための代わりにテクスチャのSprite
またはImage
を使用する必要があります。
Spriteクラスは、テクスチャ領域、描画されるジオメトリ、描画される色の両方を記述します。
scene2dを使用する場合は、Imageを使用できます。Imageは単純に描画可能オブジェクトを表示します。描画可能あなたはこの方法でタッチを検出することができますテクスチャ、テクスチャ領域、ninepatch、スプライトなど
ことができます。
public class TouchSystem extends ApplicationAdapter implements InputProcessor {
private SpriteBatch batch;
Texture up,down;
Sprite upSprite,downSprite;
OrthographicCamera camera;
Vector3 temp;
@Override
public void create() {
temp=new Vector3();
camera=new OrthographicCamera();
camera.setToOrtho(false,Gdx.graphics.getWidth(),Gdx.graphics.getHeight());
batch=new SpriteBatch();
up=new Texture("top_arrow.png");
down=new Texture("down_arrow.png");
upSprite=new Sprite(up);
downSprite=new Sprite(down);
downSprite.setPosition(200,100);
Gdx.input.setInputProcessor(this);
}
@Override
public void render() {
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
batch.setProjectionMatrix(camera.combined);
batch.begin();
upSprite.draw(batch);
downSprite.draw(batch);
batch.end();
}
@Override
public void dispose() {
up.dispose();
down.dispose();
batch.dispose();
}
@Override
public void resume() {
super.resume();
}
@Override
public boolean keyDown(int keycode) {
return false;
}
@Override
public boolean keyUp(int keycode) {
return false;
}
@Override
public boolean keyTyped(char character) {
return false;
}
@Override
public boolean touchDown(int screenX, int screenY, int pointer, int button) {
temp.set(screenX,screenY,0);
camera.unproject(temp);
if(upSprite.getBoundingRectangle().contains(temp.x,temp.y))
System.out.println("Touch on upSprite");
if(downSprite.getBoundingRectangle().contains(temp.x,temp.y))
System.out.println("Touch on downSprite");
return false;
}
@Override
public boolean touchUp(int screenX, int screenY, int pointer, int button) {
return false;
}
@Override
public boolean touchDragged(int screenX, int screenY, int pointer) {
return false;
}
@Override
public boolean mouseMoved(int screenX, int screenY) {
return false;
}
@Override
public boolean scrolled(int amount) {
return false;
}
}
私は[リンク] https://gamedev.stackexchange.com/のようでした質問/ 121115/libgdx-simple-button-with-imageですが、ポジションをステージに設定する方法は? –
Table、Stack、VerticalGroupなどのレイアウトコンポーネントを使用することができます。それらの使い方や使い方に関する素晴らしい説明は、LibGdx wiki https://github.com/libgdx/libgdx/libgdx/wiki/Scene2d.uiにあります。 #レイアウト – dfour