Robiłem zadanie według kursu na youtube. Podczas naciśnięcia klawisza w lewo nic się nie dzieje.
import java.applet.Applet;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.Timer;
//biblioteki
public class Gra extends Applet implements KeyListener
{
static Applet applet;
Zadanie zadanie = new Zadanie();
int rozmiar1=4*20;
int rozmiar2=4*20;
Timer timer = new Timer();
public void init()
{
applet=this;
applet.addKeyListener(this);
applet.setSize(rozmiar1, rozmiar2);
applet.setBackground(Color.LIGHT_GRAY);
timer.scheduleAtFixedRate(zadanie, 10, 10);
zadanie.zrobPlansze();
}
public void paint(Graphics g)
{
rysujPlansze(g);
}
public void rysujPlansze(Graphics g)
{
for (int i=0;i<zadanie.plansza.length;i++)
{
for (int j=0;j<zadanie.plansza[0].length;j++)
{
switch(zadanie.plansza[i][j])
{
case 1:
g.setColor(Color.red);
g.fillRect(20*i, 20*j, 20, 20);
break;
case 0:
g.setColor(Color.blue);
g.fillRect(20*i, 20*j, 20, 20);
break;
}
}
}
}
public void keyTyped(KeyEvent e) {
}
public void keyPressed(KeyEvent e)
{
switch(e.getKeyCode())
{
case 37:
zadanie.ruszaj('l');
break;
case 38:
zadanie.ruszaj('g');
break;
case 39:
zadanie.ruszaj('p');
break;
case 40:
zadanie.ruszaj('d');
break;
}
}
public void keyReleased(KeyEvent e) {
}
}
import java.util.TimerTask;
public class Zadanie extends TimerTask
{
int plansza[][]=new int [4][4];
int poz1=1;
int poz2=1;
public void run()
{
Gra.applet.repaint();
}
public void zrobPlansze()
{
int plansza2[][]=
{
{0,0,0,0},
{0,1,0,0},
{0,0,0,0},
{0,0,0,0}
};
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]=1;
plansza[poz1][poz2]=0;
}
break;
case 'p':
break;
case 'g':
break;
case 'd':
break;
}
}
}