我的代码移动图像问题

时间:2015-05-13 21:27:17

标签: java swing awt keylistener

嗨,我是制作游戏的新手,我正在为一个项目工作。但是,我的代码不会使Ship图像移动。有人可以提供合理而简单的解释吗?甚至可以解释一下如何做到这一点更简单?

import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;
import javax.swing.*;
import java.awt.geom.*;
import java.util.Random;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class SpaceJam extends JPanel implements ActionListener
{
    private Timer time;
    private ImageIcon Ship = new ImageIcon("Spaceship.PNG");
    private ImageIcon Back = new ImageIcon("background.PNG");
    private ImageIcon Test = new ImageIcon("test.PNG");
    private int x, y, dx, dy;
    private Image CurrentImage = Ship.getImage();

    public SpaceJam()
    {
     addKeyListener(new AL());
     setFocusable(true);

     x = 100;
     y = 100;
     dx = 0;
     dy = 0;
     time = new Timer(100, this);
     time.start();
    }



    public void actionPerformed(ActionEvent e)
    {
        repaint();
        move();

    }

    public void paint(Graphics g)
    {
        super.paint(g);
        Graphics2D g2d = (Graphics2D) g;
        g2d.drawImage(Back.getImage() ,0,0,null);
        g2d.drawImage(CurrentImage, x, y, null);
    }
    public void move()
    {
    x += dx;
    y += dy;

    }
    public class AL extends KeyAdapter
    {
        public void keyPressed(KeyEvent e){
            int key = e.getKeyCode();
        if(key == KeyEvent.VK_RIGHT)
        { 
          dx = 5;
          move();
        }

        if (key == KeyEvent.VK_LEFT)
         {
          dx = -5;
          move();
          }

    }

    }

}

0 个答案:

没有答案