Oppure

Loading
23/04/12 15:10
frank87
Salve a tutti,sono impegnato nella realizzazione di un piccolo videogioco. Essendo agli inizi,ho creato un JFrame,che contiene un pannello,dentro il quale ho collocato la mia macchinina con la quale giocare. Ora,dopo aver reso guidabile la macchinina non so come gestire il fatto che la mia macchina sia sempre visibile nel JPanel,perchè per come è impostato ora, quando la macchina supera i bordi del pannello la perdo di vista. Quindi vorrei fare in modo che quando la macchina si avvicina troppo al bordo l'inquadradura del Jpanel si sposti. Potete suggerirmi qualche modo per fare ciò? Grazie a tutti in anticipo:k::k::k:
aaa
23/04/12 19:20
Bonny
Dipende da come implementi gli elementi del gioco......
Non si capisce comè impostato il progetto...

La automobile cos'è un immagine incollata nel JPanel che si muove all'evento KeyListener, aggiornando la GUI con il metodo paint()?!?!
aaa
24/04/12 7:39
frank87
Si esattamente,faccio muovere la macchina in base agli eventi del keyListener e nel metodo paint() disegno la mia macchina cosi:
 gr2.drawImage(immagine,(int)car.getX(),(int)car.getY(), this); 

aaa
24/04/12 9:42
Bonny
L'unica cosa che puoi fare è controllare se la macchina resta dentro la larghezza del JPanel per esempio se il JPanel gli setti una dimensione panel.setPreferredSize(new Dimension(600,600)),
nel KeyListener fai una cosa del genere:
   if(freccia sinistra){
         if(car.getX() > 0)car.x--;
   }else if(freccia destra){
         if ( (car.getX() + car.immagine.getWidth()) < 600)car.x++;
   }
aaa
27/04/12 17:33
davide94
Se vuoi fare una cosa semplice come già detto puoi vedere quando raggiunge il limite dello schermo e da lì fermarlo ( per le collisioni c'è anche un bellissimo oggetto Rectangle e il metodo intersects).
Dopodichè se vuoi fare in modo che si sposti la "vista" che equivale a dire l'immagine di sfondo la cosa è un pò più complicata.
Dovresti fare in modo che l'immagine di sfondo si sposti a seconda di quanto si sposta la macchina(cosa difficile da gestire quando arriva in fondo e in verità non si muove più ).
Questo effetto si chiama parrallax :
ecco un video di esempio :
youtube.com/…
lo sfondo si ripete e si sposta creando la sensazione di movimento
Però forse volevi fare qualcosa di più semplice !
aaa