Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [Java] Algoritmo per movimento gioco con l'uso di swing JLabel


    Salve, 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 in questo link http://img27.imageshack.us/my.php?image=aforce2.jpg


  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Algoritmo per movimento gioco java con l'uso di swing JLabel

    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?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Intelligenza diciamo casuale.. si muovono negli spazi neri a caso.. E compito del giocatore inseguire e colpire le astronavi rosse.. Cmq potrei anche aggiungere un livello di difficoltà impossibile nel quale inseguono brutamente il giocatore..

    Li ho posizionati utilizzando il GridLayout.. Non è altro che una matrice di JLabel.. Secondo te è una soluzione che nn va bene?? Anche perchè dovrei ridisegnare la matrice cambiando quadrato per quadrato e quindi il movimento non sarebbe per niente fluido e non mi piace.

    Il timer non lo conosco.. :master: :master: :master: :master: :master: :master:

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.