Witam,
mam pewien problem chce zrobią taką bardzo prosta gre, lecz przy gry poruszam się postacią, to zostaje ona narysowana w nowym miejscu lecz nie zostaje usunięta z wcześniejszego położenia. Dokładnie co się dzieje pokaże w załączniku a tu załączam kod:
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.Timer;
@SuppressWarnings("serial")
public class Main extends Applet implements KeyListener {
public void init()
{
applet = this;
applet.setSize(650, 620);
timer.scheduleAtFixedRate(run, 10, 10);
applet.addKeyListener(this);
run.mapa();
klocek = getImage(getDocumentBase(), "img/klocek.png");
klocek2 = getImage(getDocumentBase(), "img/klocek2.png");
postac = getImage(getDocumentBase(), "img/postac.png");
portal = getImage(getDocumentBase(), "img/portal.png");
}
public void update(Graphics g)
{
paint(g);
}
public void paint(Graphics g)
{
for(int i =0; i<run.maps.length; i++)
{
for(int j=0; j<run.maps[0].length; j++)
{
g.drawImage(klocek2,10 + 30*j,10 + 30*i,this);
if(run.maps[i][j] == 0)
g.drawImage(klocek2,10 + 30*j,10 + 30*i,this);
if(run.maps[i][j] == 1)
g.drawImage(klocek,10 + 30*j, 10 + 30*i,this);
if(run.maps[i][j] == 2)
g.drawImage(postac, 10 + 30*j,10 + 30*i,this);
if(run.maps[i][j] == 3)
g.drawImage(portal,10 + 30 *j, 10+ 30*i, this );
}
}
}
public void keyPressed(KeyEvent e) {
switch(e.getKeyCode())
{
case 87:
run.moveHeroes('w');
break;
case 83:
run.moveHeroes('s');
break;
case 65:
run.moveHeroes('a');
break;
case 68:
run.moveHeroes('d');
break;
}
}
public void keyReleased(KeyEvent e) {
}
public void keyTyped(KeyEvent e) {
}
static Applet applet;
Run run = new Run();
Timer timer = new Timer();
Image klocek,klocek2, postac, portal;
}
Nie moge usunąć:
public void update(Graphics g)
{
paint(g);
}
Jak to usunę to ruch postaci działa normalnie ale wszystko miga.
Z góry dziękuje.