Originariamente inviato da caffeine
mi servirebbe qualche spunto per creare un algoritmo per il movimento di astronavi (tutte JLabel) credo di dover usare al- un thread. Vi sono 10 astronavi nemiche ed 1 che piloto io come giocatore.. Avete qualche idea?? Vi inserisco un'immagine che vale + di 100 parole
Se vuoi usare un componente Swing per ogni "entità" del tuo gioco, ok può andare anche bene. Non è l'unica soluzione ... l'altra sarebbe quella di disegnare tutto il campo e lo stato di gioco in un apposito componente. Ma richiederebbe, ovvio, una buona conoscenza del "painting" dei componenti e della grafica 2D in Java. Chiaramente se sposti i componenti devi usare il posizionamento assoluto, quindi niente layout manager.

Che devi per forza usare un thread no, non necessariamente. Potresti anche usare il timer javax.swing.Timer, ovvero ad intervalli di tempo fai qualcosa ed aggiorni lo stato del gioco. Tieni presente che Swing non è thread-safe, quindi da un altro thread che non è il EDT non dovresti agire direttamente sulla interfaccia grafica (puoi farlo ma sfruttando i soliti invokeLater()/invokeAndWait() .... più noioso ovviamente). Mentre con il Timer di Swing, l'evento è gestito nel contesto del EDT.

La immagine l'ho vista, deduco che tutte le entità possono muoversi solo sulla parte nera, ovvero devono "girare" attorno a quei blocchi azzurrini, giusto?
A parte ovviamente i calcoli e la logica per passare solo nei percorsi permessi, quale "algoritmo" intendi realizzare? Intendo dire: con quale logica devono muoversi quelle entità? A caso? Cercando di orientarsi a grandi linee verso la zona del giocatore? Cercando di inseguire "di brutto" il giocatore? Insomma ... quale livello di "stupidità/intelligenza" devono avere?