2016-04-11 28 views
1

Bir arka plan doku görüntüsünü tıklattığımda bir nokta koyduğum bir uygulama oluşturmaya çalışıyorum (bu bir nokta resminin olduğu bir görüntü düğmesi ve sadece diplay) . Şimdi tıkladıktan sonra, fare işaretçisini bu noktadan uzağa hareket ettirdiğimde, o noktadan ince bir çizginin başlamasını istiyorum ve geçerli işaretçimin olduğu yerde biter. Arka planda ikinci kez tıklar tıklamaz, bu çizgi ilk ve ikinci nokta olarak başlangıç ​​ve bitiş noktaları ile sabitlenir.Libgdx 2 fare tıklaması arasında Çizgi Çizme

Ben noktalar çizmek mümkün, ama ben çizgi çizmek mümkün olmadığım:

1. fareyi hareket ettirdiğimde, ilk noktadan fare işaretçisine kadar hareket eden bir çizgi çizemiyorum. (hattımı daha iyi duruma getirmeme yardımcı olmak için)

2. fareyi ikinci kez bastığımda, bir nokta oluşturabilirim, ancak bir çizgi oluşturamıyorum.

Oyunculu giriş listelemenin içinde bir oyuncu (çizgi görüntüsünden dokuya sahip görüntü düğmesi) oluşturmaya çalıştım ancak bir oyuncu sadece x, y noktalarını ve genişliğini/yüksekliğini oluşturdu. Ben biten x/y koordinatlarını bahsedemez değilim: Ben bu adım olarak şaşırıp olarak

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; 
      } 
    }); 

Ben, bu konuda bir yardıma ihtiyacım var. Bunun için ekran bakınız: Line between the dots 1 and 2

+0

Çizgiler çizmek için çeşitli yöntemlere sahip ShapeRenderer sınıfını inceleyin. –

cevap

1

2 nokta arasındaki çizgiler çizmek için ShapeRenderer kullanın:

: Eğer ShapeRenderer rectLine yöntemi kullanabilirsiniz çizginin kalınlığını seçmek istiyorsanız

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

Fare imlecinde iki nokta arasında çizgi çizmeye çalışıyorum ve ImageButton, Image ve stage kullanıyorum: dotimageButton = new ImageButton (skin.getDrawable ("dot")); \t \t \t \t \t dotimageButton.setPosition (x1, y1); \t \t \t \t \t stage.addActor (dotimageButton); –

+0

, yapmanız gereken tek şey camera.project kullanmaktır. – Hllink

İlgili konular