Bom dia pessoal,
Estou com um problema em fazer um jogo básico em Java.
O projecto contém dois ficheiros, 1 MainClass:
import java.awt.*;
import java.applet.*;
//import java.awt.Graphics;
public class MainClass extends Applet implements Runnable{
Thread thread = new Thread(this);
boolean running=true;
Player p;
@Override
public void init()
{
setSize(400,400);
p = new Player(this);
}
@Override
public void start(){thread.start();}
@Override
public void destroy(){running=false;}
@Override
public void stop(){running=false;}
@Override
public void run()
{
while(running)
{
repaint();
p.update(this);
try
{
Thread.sleep(19);
}
catch (InterruptedException e)
{
System.out.print("ERROR HAS OCCURRED");
}
}
}
@Override
public void paint(Graphics g){
p.paint(g,this);
}
}
E depois tenho outro ficheiro com o nome de Player que é onde está o meu problema:
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.net.URL;
import javax.imageio.ImageIO;
import javax.rmi.CORBA.Util;
public class Player implements KeyListener{
private int x=200;
private int y=200;
private int radius=20;
private int velX=0;
private int velY=0;
private URL url;
private Image Player;
public Player (MainClass mc){
url=mc.getDocumentBase();
Player = mc.getImage(url,"Smiley-upset-3-icon.png");//importar a imagem que adicionei ao projecto
}
public void update(MainClass mc){
mc.addKeyListener(this);
x+=velX;
y+=velY;
}
public void paint(Graphics g, MainClass mc){
g.drawImage(Player, x, y, mc);
g.drawImage(Player, x, y, mc);
//declarar a variável referente à imagem com as variáveis dedirecção e a da class
}
@Override
public void keyTyped(KeyEvent ke) {
// throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void keyPressed(KeyEvent ke) {
switch(ke.getKeyCode()){
case KeyEvent.VK_RIGHT:{
velX=5;
break;
}
case KeyEvent.VK_LEFT:{
velX=-5;
break;
}
case KeyEvent.VK_UP:{
velY=-5;
break;
}
case KeyEvent.VK_DOWN:{
velY=5;
break;
}
}
}
@Override
public void keyReleased(KeyEvent ke) {
switch(ke.getKeyCode()){
case KeyEvent.VK_RIGHT:{
velX=0;
break;
}
case KeyEvent.VK_LEFT:{
velX=0;
break;
}
case KeyEvent.VK_UP:{
velY=0;
break;
}
case KeyEvent.VK_DOWN:{
velY=0;
break;
}
}
}
}
Ou seja, quando corro a MainClass deveria de me aparecer a imagem que declaro no ficheiro Player mas não aparece nada. Já exprime te com g.filloval (**,**,**) e funciona só que eu queria fazer tipo um packman ou coisa assim do género.
Ok pessoal se alguém tiver ideias fico a aguardar.
Grande abraço.
↧