2017-09-08 49 views
0

我想找到一種方法來'檢查'所有參與者在特定的階段座標,看是否有任何具體的標識符(例如名稱)。LibGDX - 返回所有參與者在特定階段座標

階段內的命中方法(顯示在下面的代碼中)對此非常有效,但在找到第一個參與者(如果多個參與者重疊時這是一個問題)後停止。

@Override 
    public boolean touchDown(int screenX, int screenY, int pointer, int button) { 
     Vector2 coord = stage.screenToStageCoordinates(new Vector2((float)screenX,(float)screenY)); 
     Actor hitActor = stage.hit(coord.x,coord.y,false); 

     if(hitActor != null) 
     Gdx.app.log("HIT",hitActor.getName()); 

     return true; 
    } 

有沒有辦法對命中方法繼續運行在找到第一個演員後在例如數組返回結果(或一些其他類似的方法),或者我會過得更好只是通過所有參與者循環並檢查邊界是否每次重疊?

回答

0

我認爲遍歷所有actor並檢查它們是否被命中是唯一的方法,因爲stage.hit()只返回該觸摸點最深的actor。

+0

謝謝。所以要確認,'檢查它們是否被擊中'意味着檢查兩個演員之間的界限是否重疊? –

+0

如果你想檢查兩個演員是否相撞,是的。如果你想觸摸檢測你得到或做一個邊界矩形,你調用rect.contains(x,y) –