Ciao a tutti ,
Ho creato un classe principale
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
public class fantasy1 extends JFrame {
public static Clip audio;
public static void main(String[] args) {
colonnasonora("./sound/storia.wav");
JFrame myFrame = new JFrame("Fantasy 1");
//Se larghezza 768 --> 16 *48 (Muro) --> 768 - Altezza 576 --> 48 *12
myFrame.setSize(728, 455); // 768 * 576 -> risoluzione dell'immagine oelemento
myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myFrame.setLocationRelativeTo(null);
myFrame.setResizable(false);
// vorrei scrivere se premo la barra spaziatrice carichi l'immagine statica 1
la seconda volta immagine 2 la terza immagine 3
La 4 volta entra nel gioco e carico la classe dedicata GameFrame
GameFrame prende il controllo della tastiera programmata per il player
myFrame.add(new cover()); // Copertina
//myFrame.add(new GameFrame()); // Gioco
myFrame.setIconImage(new ImageIcon("./img/ico.png").getImage());
myFrame.setVisible(true);
}
public static void colonnasonora ( String musica){
try {
audio = AudioSystem.getClip();
audio.open(AudioSystem.getAudioInputStream(new File(musica)));
audio.loop(Clip.LOOP_CONTINUOUSLY);
audio.start();
} catch (Exception e) {
System.out.println(e);
}
}
}
Ho la necessità il programma parte con il panello definito sulla classe cover
questa deve rimanere in ascolto dei tasti.
se non viene premuto nulla la cover carica slide immagini a ripetizione.
Alla pressione del tasto "Space"
Viene caricata un immagine statica 1
la seconda volta un immagine statica 2
alla terza un immagine statica 3
alla quarta volta il programma passa dal panello definito nella classe cover alla classe GameFrame.
Questa classe rimane in ascolto dei tasti a seconda del tasto premuto muove il player
ecco un seudo codice
usa cosa del genere
myFrame.add(new cover()); // Copertina caricata all'avvio dell'applicazione
cont= 0;
if (e.event =='space' ) {
if ( cont ==0) {
loadimage1;
cont= cont+1;
} esle if ( cont ==1) {
loadimage2;
cont= cont+1;
} esle if ( cont ==2) {
loadimage3;
cont= cont+1;
} else
myFrame.add(new GameFrame()); //Modifico il panello e prendo controllo dei tasti
// attiva tasti gestione player
}
Come faccio a cambiare il panello in fase di avvio e gestire i tasti in modo che all'inizio vengono rilevati dalla classe cover è successivamente viene caricata la classe GameFrame cambiando evento tasti dedicati al player?
Grazie mille