現在、自分のゲームのメニュー画面でプログラミング中です。 SpriteボタンがタッチされたかどうかをチェックするRectangleを作成しようとしています。 uは、関連するクラスの両方がhereをklick見たい場合はAbitrary世界座標public static int WIDTH = 1080 , HEIGHT = 720;
メニューボタンをスプライトで作成する
public void create() {
cam = new OrthoCamera();
cam.resize();
texture = new Texture("Button.png");
texture.setFilter(TextureFilter.Linear, TextureFilter.Linear);
TextureRegion region = new TextureRegion(texture, 59, 52, 300,250);
sprite = new Sprite(region);
sprite.setSize(sprite.getWidth() , sprite.getHeight() )
sprite.setPosition(MyGdxGame.WIDTH/2, MyGdxGame.HEIGHT/2);
}
を使用してイムは、私は、特別な正射カメラを使用しています。私は長方形の何とか原点は座標系のことをregognized
public void update(OrthoCamera cam) {
if(Gdx.input.isTouched())
{
Vector3 tmp = new Vector3(Gdx.input.getX(), Gdx.input.getY(), 0);
cam.unproject(tmp);
Rectangle textureBounds = new Rectangle(0,0, 300, 250); //origin at center ?!
if(textureBounds.contains(tmp.x,tmp.y))
{
//ScreenManager.setScreen(new GameScreen());
System.out.println("Rectangle")
}
}
}
トラフのテストセンターにあり、幅と高さがはるかに高く設定されて(私のプロジェクトわけではありません)。ここでは、クリックしてプリントアウトする「矩形」の領域の画像を見ることができます。通常、Rectangleの原点は左下にありますか?
こと。 :)それはスーパークラスから複製されたパラメータを持っていて、不必要にオーバーライドされたメソッドの中でそれらをスーパークラスとミックスして一致させます。そのVirtualViewportクラスもかなり複雑に見えます。あなたの問題はおそらく、スーパークラスのメソッドを注意深く実装していないオーバーライドされたクラスと関係があるでしょう。そのVirtualViewportクラスもかなり畳み込まれています。代わりに、組み込みのLibgdx ExtendViewportクラスをプレーンなOrthographicCameraで使用する必要があります。 – Tenfour04