stefano Cambazzu
unread,Mar 23, 2023, 2:25:06 PM3/23/23You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to
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