PNG の宇宙船を画面上で動かすことから始めて、Java である種のスペース インベーダー ゲームを作ろうとしています。あるべき場所に現れ、動くことを拒否するだけです。プログラムは正常にコンパイルされ、Eclipse はエラーや警告を表示しません。誰が私が間違っているのか教えてもらえますか?
これが私のコードです:
import java.awt.*;
import java.net.*;
import java.awt.geom.*;
import java.applet.*;
import java.awt.event.*;
public class DrawImage extends Applet implements KeyListener{
private static final long serialVersionUID = 1L;
private Image image;
private int keycode;
AffineTransform identity = new AffineTransform();
private boolean keyleft = false;
private boolean keyright = false;
private URL getURL(String filename){
URL url = null;
try
{
url = this.getClass().getResource(filename);
}
catch(Exception e)
{
e.printStackTrace();
}
return url;
}
public void init()
{
image = getImage(getURL("spaceship.png"));
addKeyListener(this);
}
public void paint(Graphics g)
{
Graphics2D g2d = (Graphics2D)g;
//fill background with black
AffineTransform trans = new AffineTransform();
g2d.setColor(Color.GREEN);
g2d.fillRect(0,0,getSize().width,getSize().height);
g2d.drawImage(image,320,240,this);
trans.setTransform(identity);
if(keyright == true)
{
trans.translate(-10,0);
keyleft = false;
}
else if(keyleft == true)
{
trans.translate(10,0);
keyright = false;
}
}
public void keyPressed(KeyEvent e)
{
keycode = e.getKeyCode();
if(keycode == KeyEvent.VK_LEFT)
{
keyleft = true;
}
else if(keycode == KeyEvent.VK_RIGHT)
{
keyright = true;
}
repaint();
}
public void keyTyped(KeyEvent e){}
public void keyReleased(KeyEvent e){}
}