Witam otóż mam taki problem napisałem prosty kod gry. Ale niestety przy poruszaniu się postaci jest błąd. A mianowicie nic się nie dzieje po wciśnięciu przycisku.
Kod:
(GŁÓWNY KOD)
import java.applet.Applet;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.Timer;
public class Game extends Applet implements KeyListener
{
int roz1 = 600;
int roz2 = 400;
static Applet applet;
aaa aaa = new aaa();
Timer timer = new Timer();
Image bufor;
Graphics bg;
public void init()
{
applet = this;
applet.addKeyListener(this);
applet.setSize(600,400);
applet.setBackground(Color.lightGray);
bufor = createImage(roz1,roz2);
bg = bufor.getGraphics();
timer.scheduleAtFixedRate(aaa,10,10);
aaa.zrobPlansze();
}
public void update(Graphics g)
{
bg.clearRect(0,0,roz1,roz2);
paint(bg);
g.drawImage(bufor,0,0,applet);
}
public void paint(Graphics g)
{
rysujPlansze(g);
}
public void rysujPlansze(Graphics g)
{
for(int i=0;i<aaa.plansza.length;i++)
{
for(int j=0;j<aaa.plansza[0].length;j++)
{
switch(aaa.plansza[i][j])
{
case 0:
g.setColor(Color.GREEN);
g.fillRect(40*j,40*i,40,40);
break;
case 1:
g.setColor(Color.BLUE);
g.fillRect(40*j,40*i,40,40);
break;
case 2:
g.setColor(Color.DARK_GRAY);
g.fillRect(40*j,40*i,40,40);
break;
case 4:
g.setColor(Color.BLACK);
g.fillRect(40*j,40*i,40,40);
break;
}
}
}
}
public void keyPressed(KeyEvent arg0)
{
switch(arg0.getKeyChar())
{
case 'w':
aaa.ruszaj('g');
break;
case 'a':
aaa.ruszaj('l');
break;
case 'd':
aaa.ruszaj('p');
break;
case 's':
aaa.ruszaj('d');
break;
}
}
public void keyReleased(KeyEvent arg0)
{
}
public void keyTyped(KeyEvent arg0)
{
}
}
(MAPA I PORUSZANIE SIĘ)
import java.util.TimerTask;
public class aaa extends TimerTask
{
int plansza[][] = new int[10][15];
int poz1 = 1;
int poz2 = 15;
public void run()
{
Game.applet.repaint();
}
public void zrobPlansze()
{
int plansza2[][] = {
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
{0,0,0,0,0,0,0,0,1,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,1,1,0,0,0,0,0},
{0,0,0,0,0,0,0,1,1,1,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{2,2,2,2,2,2,2,2,2,2,2,2,2,2,2}
};
for(int i=0;i<plansza.length;i++)
{
for(int j=0;j<plansza[0].length;j++)
{
plansza[i][j] = plansza2[i][j];
}
}
}
public void ruszaj(char gdzie)
{
switch(gdzie)
{
case 'l':
if(plansza[poz1][poz2-1]==0)
{
plansza[poz1][poz2-1]=4;
plansza[poz1][poz2]=0;
poz2--;
}
break;
case 'p':
break;
case 'g':
break;
case 'd':
break;
}
}
}
Shalom