Ich mache ein Idle Game, aber jetzt weiß ich nicht, wie ich die Hörer des HUD machen soll. Es ist in Ordnung, einen InputListener() in jede Taste meines HUD zu instanziieren? Ich habe gerne 20 Knöpfe oder Schauspieler zum anfassen.LibGDX-Scene2D: Wie mache ich hud mit mehreren Tasten?
Antwort
Verwenden Sie einfach addListener()
Methode für jeden Schauspieler, den Sie sein möchten klinkbar. Ich habe ClickListener für diesen Zweck verwendet, obwohl es manchmal empfohlen wird, ChangeListener aufgrund des besseren Verhaltens zu verwenden, wenn die Schaltfläche deaktiviert wird.
Also, was Sie tun müssen, ist nur
Button button;
//creating button...
button.addListener(new ClickListener(){
@Override
public void clicked(InputEvent event, float x, float y)
{
//Do something
}
});
und das gleiche für weitere Tasten/Akteure auf dem HUD Bühne.
Sie können auch take a look at this thread, wo ich nach der Leistung von vielen Zuhörern gefragt habe.
Dieser Thread hat mir sehr geholfen, danke –
Hier ist eine Szene2D-Taste, die wirklich einfach zu bedienen ist, verstehe ich nicht, was das Problem ist oder warum Sie besorgt über einen Listener auf jeder Schaltfläche oder UI-Objekt, scheint ziemlich logisch für mich.
button = new Button(buttonStyle);
button.setPosition(x, y);
button.addListener(new ClickListener() {
@Override
public void clicked(InputEvent event, float x, float y) {
Gdx.app.log(TAG, "Button clicked");
};
});
- 1. HUD mit mehreren Zeilen
- 2. Wie mache ich Einzelansicht mit mehreren Bildansichten?
- 3. Navigationsleiste mit mehreren Tasten
- 4. UIPopover Wie mache ich ein Popover mit solchen Tasten?
- 5. JavaScript Array.sort() mit mehreren Tasten
- 6. Wie man Modal mit mehreren Tasten öffnet?
- 7. android widget mit mehreren tasten
- 8. Wie mache ich ein Menü (mehrere Tasten?) IOs
- 9. Wie mache ich ein Textfeld mit mehreren Zeilen in HTML?
- 10. Wie mache ich tableView (cellForRowAtIndexPath) mit mehreren UITableViewCell lesbar?
- 11. Wie mache ich SUMIF Arbeit mit mehreren Spalten
- 12. Wie mache ich einen horizontalen Balken mit mehreren Abschnitten darin?
- 13. Wie mache ich diese if-Anweisung mit mehreren Bedingungen kürzer?
- 14. Wie mache ich JTable mit mehreren Editor-Typen hintereinander?
- 15. Ziel C, HUD-Panel?
- 16. INNER JOIN mit mehreren Tabellen und Tasten
- 17. Handhabung Formen mit mehreren Tasten/posts
- 18. Mit mehreren Tasten auf Eclipse/Android
- 19. Wie INSERT mit einem inversen JOIN auf mehreren Tasten einfügen?
- 20. Wie mache ich eine Variable aus mehreren jFrames zugänglich?
- 21. Mehrere Zeilen UILabel mit mehreren Tasten und Schriftarten
- 22. Spiel UI HUD
- 23. Wie erstelle ich ein HUD über meiner Scenekit.scene
- 24. OpenGL ES 2.0 + Kairo: HUD
- 25. Ich möchte benutzerdefinierte Dialog wie iPhone HUD Progress Bar zeigen
- 26. jquery Bindung klicken Ereignis zu mehreren Tasten
- 27. Wählen Sie Werte basierend auf mehreren Tasten
- 28. Wie Teil-Suche tun auf mehreren Tasten dictionary
- 29. jquery-confirm - klickten Schaltfläche in Formular mit mehreren Tasten
- 30. OpenGL 2D HUD zeigt nicht
Warum nicht? ....... – Tenfour04
Ich meine, es ist die einzige Option? Weil ich auf die Variablen und Funktionen des "Knopfes" von der TouchDown Methode von der InputListener Klasse zurückgreifen muss (ich weiß, dass ich zugreifen kann, aber ich Parameter übergeben muss, oder eine innere Klasse erzeuge, die InputListener, etc .. erweitert). Es ist wie viel Code, stellen Sie sich 20 Schaltflächen vor, die erweiterte InputListener-Klassen instanziieren, jede Klasse mit ihrem eigenen Code nur für eine Schaltfläche. –
Ich verstehe Ihr Problem nicht wirklich. Es klingt, als hättest du ein komplexes Setup. Der Listener muss nur eine Methode in 'touchDown' aufrufen. Sie könnten alternativ jedem Listen den gleichen Listener zuweisen und die 'touchDown'-Methode' event.getListenerActor() 'auf alle Ihre Schaltflächen überprüfen lassen, um zu entscheiden, welche Methode aufgerufen werden soll. Wenn Sie möchten, dass sich Ihre Tasten mehr wie die Tasten eines Betriebssystems verhalten (Abbrechen durch Drücken der Taste und Loslassen), dann verwenden Sie ChangeListener anstelle von InputListener und verwenden Sie 'changed' anstelle von' touchDown', um darauf zu reagieren. – Tenfour04