Witam,
otoz pisze aplet (gra tetris) - zatrzymalem sie na dosc banalnej rzeczy, ale za to bardzo kluczowej.
Otoz nie wiem gdzie umiescic metode wybor_figury(), tak aby przy uruchomieniu apletu sie uruchomila.
Jakis efekt jedynie daje umieszczenie jej w metodzie paint(), ale butony zmieniaja kolor tylko podczas zmiany rozmiaru okna :((
Bardzo prosilbym o pomoc.
I jeszcze takie pytanie: czy metody init, start, stop, run, destroy sa wymagane przy tworzeniu apletu ??
Pozdrawiam !!!
import java.applet.*;
import java.awt.*;
public class gra extends Applet
{
//tablica klockow
int[][] ktab = new int[20][8];
//tablica butonow - odzwierciedla rozmieszczenie klockow w tablicy
Button[][] btab = new Button[20][8];
Panel gridLayoutPanel()
{
Panel plansza = new Panel();
plansza.setLayout(new GridLayout(20,8,0,0));
for(int i=0;i<20; i++)
for(int j=0; j<8; j++)
{
btab[i][j]= new Button();
btab[i][j].setSize(10, 10);
btab[i][j].setBackground(Color.gray);
btab[i][j].setEnabled(false);
plansza.add(btab[i][j]);
}
return plansza;
}
public void init()
{
Panel panel = gridLayoutPanel();
setLayout(new BorderLayout());
add(panel);
setSize(250,400);
wybor_figury();
setFocusable(true);
}
public void paint(Graphics g)
{
for(int i=0;i<20; i++)
for(int j=0; j<8; j++)
if (ktab[i][j] == 1 )
btab[i][j].setBackground(Color.GREEN);
}
public void wybor_figury()
{
if( (int)(1+(Math.random()*3)) == 1)
{
ktab[0][3]=1;
ktab[0][4]=1;
ktab[1][3]=1;
ktab[1][4]=1;
}
if( (int)(1+(Math.random()*3)) == 2)
{
ktab[0][2]=1;
ktab[0][3]=1;
ktab[0][4]=1;
ktab[0][5]=1;
}
if( (int)(1+(Math.random()*3)) == 3)
{
ktab[0][3]=1;
ktab[1][3]=1;
ktab[2][3]=1;
ktab[2][4]=1;
}
}
}