2016-04-11 1 views
1

私は背景テクスチャイメージをクリックするとドットを置くアプリケーションを作成しようとしています(ドットイメージ付きのイメージボタンです) 。今すぐクリックした後、マウスポインタをそのドットから離すと、そのドットから細い線が始まり、現在のポインタがどこにあるのかがわかります。 2回目のバックグラウンドをクリックすると、最初と2番目の点として開始点と終了点が固定されます。Libgdx Draw 2回のマウスクリックの間

私は、ドットを描画することができが、私はライン描画することはできませんよということ:

1。マウスを動かすと、最初の点からマウスポインタまで動く線を描くことができません。 (私のラインをより良くするために)

2。マウスを2回押すと、ドットは作成できますが、行は作成できません。

mousemoved inputlistenerの中にアクター(ラインイメージから作成されたテクスチャーを持つimagebutton)を作成しようとしましたが、アクターは元x、yポイントと幅/高さしかありません。私はエンディングX/Y座標を言及することはできませんよ。私は、このステップとして立ち往生していますよう

actor.addListener(new InputListener() { 
      @Override 
      public boolean mouseMoved(InputEvent event, float xSecond, float ySecond) { 
      dot1.setPosition(xSecond, ySecond); //dot imagebutton actor 
      line.setPosition(xFirst, yFirst); //Line starting points(
      stage.addActor(dot1); 
      stage.addActor(line); 
      return false; 
      } 
    }); 

私は、この上の助けが必要。このためにスクリーンショットを参照してください:Line between the dots 1 and 2

+0

線を描画するためのさまざまな方法があるShapeRendererクラスを確認してください。 –

答えて

1

を2点間に線を描画するShapeRendererを使用します。

:あなたはShapeRenderer rectLineメソッドを使用することができ、線の太さを選択します

shapeRenderer.setProjectionMatrix(camera.combined); 
shapeRenderer.begin(ShapeType.Line); 
shapeRenderer.setColor(1, 1, 0, 1); 
shapeRenderer.line(x, y, x2, y2); 
shapeRenderer.end(); 

rectLine(float x1, float y1, float x2, float y2, float width) 
Draws a line using a rotated rectangle, where with one edge is centered at x1, y1 and the opposite edge centered at x2, y2. 
+0

私はマウスカーソル上の2点の間に線を描こうとしていますが、ImageButton、Image、stageを使用しています:dotimageButton = new ImageButton(skin.getDrawable( "dot")); \t \t \t \t \t \t dotimageButton.setPosition(x1、y1); \t \t \t \t \t \t stage.addActor(dotimageButton); –

+0

あなたがする必要があるのは、camera.projectを使用することだけです。 – Hllink

関連する問題