Sto scrivendo un semplice simulatore di sistema solare. Questo è il mio primo progetto libgdx. Sto usando uno stage e attori per il menu principale ed è piuttosto maneggevole soprattutto la gestione degli eventi touch. Ma ... guardando gli esempi vedo che nessuno usa gli attori nella logica di gioco reale. Vago se dovrei usare l'attore come genitore di un pianeta o semplicemente scrivere la mia classe per quello. I pianeti non saranno tangibili e saranno spostati solo tra i fotogrammi in modo che il terzo parametro di azione MoveBy dovrà essere il tempo tra i fotogrammi. Questi sono i contro. Quali sono i vantaggi nell'usare gli attori?Quando utilizzare gli attori in libgdx? Cosa sono i contro e i pro?
risposta
I principali professionisti per gli attori sono azioni, test di hit e touch events e gruppi di attori.
Le azioni rendono l'interpolazione facile e veloce se la logica del gioco lo richiede.
È possibile chiamare stage.hit (x, y) in qualsiasi momento per restituire il primo attore che restituisce true a qualsiasi logica di hit scritta per esso (in genere controllando i limiti con x, y, width, height). restituire questo attore o null per continuare a scorrere tra i metodi di hit degli attori alla ricerca di un attore di successo. Null viene restituito se nessun attore viene colpito.
Il colpo viene utilizzato per gli eventi tattili dello stage. I metodi tattili dell'attore ricevono le coordinate locali e lo stage gestisce la sovrapposizione di oggetti, ad es. se un attore copre un altro attore in modo che l'altro attore non debba ricevere touchDown, restituisce true all'attore di copertura per interrompere la chiamata di touchDown sugli attori "sotto". Questo imposta anche "focus" sull'attore che restituisce true in modo che venga chiamato il touchUp dell'Actor.
È possibile raggruppare attori per eseguire azioni, toccare eventi, ecc. Sull'intero gruppo di attori come una singola unità.
Alcuni svantaggi: Gli attori richiedono uno stage che limita un po 'la funzionalità. Molti codificatori usano altre logiche per determinare lo stato dell'oggetto di gioco, piuttosto che le azioni scene2d (ad esempio box2d). Se usi gli attori per gli oggetti di gioco, probabilmente vorrai due fasi, una per gli ui e una per il mondo di gioco. Se non li usi, probabilmente utilizzerai comunque SpriteBatch e Camera. E ricorda che gli attori hanno solo un metodo di estrazione astratto, quindi dovrai comunque creare la logica di estrazione. Probabilmente manterrai TextureRegion o Sprite come campo privato per l'attore. Se si desidera utilizzare la propria logica di aggiornamento, è possibile sovrascrivere il metodo act (float delta) per ottenere il delta time (chiamare super.act (delta) se si utilizza Actions).
Quindi, se si dispone di una propria logica e non si utilizzerà molto di ciò che Stage ha da offrire, risparmiare alcune risorse e eseguire il rollover della propria soluzione specifica per l'applicazione. Se puoi usare alcuni dei pro senza limitare le funzionalità necessarie, allora vai per un secondo stadio per la logica di gioco.
È possibile usare sia Scene2D che box2d, anche se è ovvio che alcune cose possono risultare scomode. In generale, però, è perfettamente possibile e lo sto effettivamente facendo. Per oggetti dinamici, devi semplicemente ricavare la posizione del tuo attore dal modello fisico. Ciò significa ovviamente che gli "Action" sono in qualche modo inutili, dal momento che il movimento va solo dalla fisica all'Actor, non viceversa. Tuttavia, si ottiene sempre la gestione degli input, un sistema di eventi, la gestione della telecamera e la mappatura delle coordinate gratuitamente. Le azioni possono ancora essere utilizzate per elementi visivi senza un corpo fisico (ad esempio oggetti equipaggiati, sprite degli effetti, ecc.) – Matthias
- 1. Quali sono i pro e i contro di Anchor Modeling?
- 2. Quali sono i pro e i contro di un TreeSet
- 3. Quali sono i pro e i contro dell'uso di Global.asax?
- 4. Quali sono i tipi di modelli utilizzati, pro e contro?
- 5. Quali sono i pro e i contro dell'uso di configChanges = "orientation" per i dispositivi Android?
- 6. Quali sono i pro e i contro dell'utilizzo di un'e-mail come nome utente?
- 7. Quali sono i pro e i contro delle procedure di chiamata in VB.NET?
- 8. Quali sono i pro e i contro dell'uso di variabili di trasmissione in un singleton?
- 9. Cosa sono i pro/contro delle annotazioni (non compilatore) rispetto ai file di configurazione xml
- 10. Quali sono i pro e i contro dell'utilizzo dell'elenco manuale iterazione vs ricorsione tramite fail
- 11. Quali sono i pro e i contro di LinkedHashMaps rispetto a LinkedHashSet?
- 12. Quali sono i pro e i contro del parametro --svn-branches per svn2git
- 13. Quali sono i pro e i contro di git-flow vs github-flow?
- 14. Quali sono le situazioni o i pro e i contro dell'uso di C++/CLI su C#
- 15. Quali sono i pro e i contro dell'input delimitato generale di Ruby? (percentuale di sintassi)
- 16. Quali sono i pro e i contro di asset_packager e Jammit?
- 17. Quali sono i pro e i contro di entrambi Jade e EJS per il modello Node.js?
- 18. Quali sono i pro e i contro degli Enumerator vs. Conduit vs. Pipes?
- 19. Quali sono i pro e i contro di rspec mocking rispetto ad altri framework beffardi?
- 20. Quali sono i pro e i contro dell'uso di una flag enum?
- 21. come trascinare gli attori su libgdx scene2d?
- 22. Quali sono i pro e i contro dell'utilizzo di uno o più DbContext con EF?
- 23. Quando utilizzare gli attori locali o remoti?
- 24. Quali sono i pro e i contro di DynamoDB rispetto ad altri database NoSQL?
- 25. Quali sono i pro e i contro del linguaggio di programmazione Icon?
- 26. Per ARC o non per ARC? Quali sono i pro e i contro?
- 27. Quali sono i pro e i contro dell'uso di un motore di template come Jade?
- 28. Quali sono i pro e i contro di HTML5 Canvas vs. SVG + Raphael.js?
- 29. WPF - MVVM - Quali sono i pro e i contro delle varie tecniche di creazione di viste?
- 30. Quali sono i pro e i contro dell'uso di GenericForeignKey rispetto all'ereditarietà multipla rispetto a OneToOneField?
Credo che molti degli esempi di libGDX precedenti il supporto di Stage + Actor, in modo che possa spiegare perché non lo usano. –