PDA

View Full Version : Java Tetris


Pro7on
30-05-2007, 15:09
ciao a tutti, dovrei fare il tetri in java, solo che nn saprei da dove iniziare... avete idea... tipo siti che spiegano l'algoritmo ooO come fare in odo che quando premo il tasto succeda qualcosa??? e resto... cosa uso come matrice...

thx ciaoi

andbin
30-05-2007, 16:07
ciao a tutti, dovrei fare il tetri in java, solo che nn saprei da dove iniziare... avete idea... tipo siti che spiegano l'algoritmo ooO come fare in odo che quando premo il tasto succeda qualcosa??? e resto... cosa uso come matrice...La tua domanda è troppo generica ... intanto devi fare una applicazione o una applet Java? Con AWT o Swing?

Per il resto (cosa usare, come visualizzare gli elementi, ecc...) dipende da tanti fattori.

AnonimoVeneziano
30-05-2007, 22:45
Mi sembra che stai iniziando proprio da zero la tua avventura nella programmazione ad eventi delle interfacce grafiche.

Non so se tu conosca già Java come linguaggio o se devi ancora apprenderlo. In caso tu già lo conosca e vuoi capire come creare interfacce grafiche segui questo tutorial (spiega il funzionamento di Swing) :

http://java.sun.com/docs/books/tutorial/uiswing/index.html

per il tuo progetto potrebbe anche esserti utile Java2D:

http://java.sun.com/docs/books/tutorial/2d/index.html

Una volta appresi questi concetti inizia a buttare giù una prima idea su carta di come le varie componenti del tuo programma possono interagire tra loro e inizia :)

Ciao

Pro7on
31-05-2007, 08:03
no java and swing li conosco disvretamente infatti in teoria li volevo fare con sti due... mi guardo un'attimo cos'è sto 2d ;) thx



cmq io di base pensavo di fare una "matrice" con dei label o simili e colorarli in base alla figura e il movimento ma nn so se questo e un'idea decente e possibile?

Pro7on
31-05-2007, 10:55
una domanda, consigliate di fare 5 classi per i 5 oggeti ooo farne 6 di qui una come figura ed estendere le altre ad'essi?

lovaz
31-05-2007, 11:27
Anche io userei le label

l'ultimo tuo messaggio è delirante... :D

Pro7on
31-05-2007, 11:28
Anche io userei le label

l'ultimo tuo messaggio è delirante... :D


:D :D :D xchè... e label siano!:)

Pro7on
04-06-2007, 09:15
Prima domanda:


//Componenti
for(int i=0; i< 10; i++){
for(int y=0; y< 5; y++){


JLabel nome = new JLabel("Nome");
}
}

for(int i=0; i< 50; i++){

pannello.add(nome);
}



questo sarebbe per creare la base... cime faccio a dirli che il label si chiama label+y (tipo php: 'label'.$y) e poi come faccio a farli andare a capo?

andbin
04-06-2007, 09:41
questo sarebbe per creare la base... cime faccio a dirli che il label si chiama label+y (tipo php: 'label'.$y)Facendo new JLabel("Nome") crei una JLabel che visualizza il testo "Nome". Se devi fare un tetris, immagino che ci debba mettere dentro delle immagini, non del testo!

poi come faccio a farli andare a capo?Se devi fare una griglia di label, devi usare un apposito layout-manager, GridLayout. Vedi <qui> (http://java.sun.com/docs/books/tutorial/uiswing/layout/visual.html) sul tutorial.

Pro7on
04-06-2007, 09:45
ok, ma come faccio a mettere delle img?, o meglio nn so ancora come fare.

perche faccio tipo una griglia di rettangoli neri e in base alle figure e al movimento li metto un'altra img... ma come faccio a gestire la cosa nel senso riaggiornare ogni tot sec la pagina o come...???:confused:


quale dei layout devo usare?

andbin
04-06-2007, 09:53
ok, ma come faccio a mettere delle img?, o meglio nn so ancora come fare.

perche faccio tipo una griglia di rettangoli neri e in base alle figure e al movimento li metto un'altra img... ma come faccio a gestire la cosa nel senso riaggiornare ogni tot sec la pagina o come...???:confused:Queste che stai ponendo sono tutte domande relative alla gestione delle interfacce grafiche .... forse è meglio se inizi a documentarti bene. Ti ho già indicato diverse volte dei link al tutorial ufficiale. Inoltre è bene se hai sempre la documentazione javadoc del framework a portata di mano.
Ad esempio se vai a vedere, JLabel ha un costruttore che prende un Icon e se vai a vedere, Icon è una interfaccia, che viene implementata dalla classe ImageIcon, che puoi creare partendo dal nome di un file o un URL che fanno riferimento ad una immagine.

Pro7on
04-06-2007, 10:04
io uso sto sito: http://www.beginner-java-tutorial.com/java-swing-tutorial.html

cmq cos ami consigli per la gestione grafica di come fare.. avete idee xche io nn so come fare.. per il layout il gridlayout va bene no?

lovaz
04-06-2007, 10:25
Io non userei icone, basta cambiare il colore di background della label
(forse devi anche farle opache non ricordo).

Il gridlayout va bene.

Non puoi usare dei nomi "dinamici", ma puoi metterli in un array,
anzi in una matrice bidimensionale.

Pro7on
04-06-2007, 10:33
Io non userei icone, basta cambiare il colore di background della label
(forse devi anche farle opache non ricordo).

Il gridlayout va bene.

Non puoi usare dei nomi "dinamici", ma puoi metterli in un array,
anzi in una matrice bidimensionale.

ok provo a farlo, vediamo..

cmq solo per curiosità se metto un img al label nella cartella del progetto dove devo mettere img?

lovaz
04-06-2007, 10:35
Intendi come impostare un icona?

label = new JLabel( new ImageIcon( nomeFile ) );

oppure label.setIcon(...);

Pro7on
04-06-2007, 10:49
Intendi come impostare un icona?

label = new JLabel( new ImageIcon( nomeFile ) );

oppure label.setIcon(...);



si ma in pratica dome la caccio dentro icona?


cmq

ecco qua come popolizzo l'array



public int [][]matrice;
....
for(int y=0;y<20;y++){
for(int x=0;x<10;x++){

matrice[x][y] = 10;
}
}



si ma la cosa che nn capisco e

1: come assegno il background
2: come faccio a riaggiornare ogni volta la tabella?

lovaz
04-06-2007, 11:13
si ma in pratica dome la caccio dentro icona?
? è un normale file

1: come assegno il background
ad esempio con label.setBackground( Color.BLUE );
ma come dicevo sopra forse quando inizializzi l'icona devi farla opaca (setOpaque(true))
2: come faccio a riaggiornare ogni volta la tabella?
Non è che posso farti tutto il programma :D
Hai la matrice - che dovrebbe essere di JLabel, perché usi interi?? -
basta che fai matrice[3][2].setBackground(...);

Pro7on
04-06-2007, 12:01
matrice[x][y] = JPanel = new JPanel();

come faccio?

Pro7on
04-06-2007, 13:10
come si fa ad'assegnare un jpanel a una posizione dell'array?:confused:

lovaz
04-06-2007, 18:08
JPanel[][] matrice = new JPanel[10][20];

for(int y=0;y<20;y++){
for(int x=0;x<10;x++){
matrice[x][y] = new JPanel();
}
}