如何让Java中的Rectangle对象从JFrame的一侧反弹到另一侧

时间:2014-02-09 11:50:01

标签: java jframe

我正在尝试创建一个太空入侵者游戏,到目前为止,我已经使用左右键控制了角色控制的船的JFrame,我为外星人创建了另一个类,我在其中创建了一个Rectangle对象并尝试让它从JFrame的一侧移动到另一侧,但它开始向左移动,它只是屏幕而不是改变方向。在主JFrame类中,我创建了一个外来类的静态实例,我在main方法中创建了一个Thread,并且就像我对该角色控制的船一样启动它。我会把我的外星人课放在下面。我是java的新手,感谢任何帮助,谢谢。

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Rectangle;


public class Alien implements Runnable {

    int Alienx, xDirection;
    int y = 30;

    Rectangle Alien;

    public void run() {
        try{
            while(true) {
                move();
                Thread.sleep(30);
            }
        }catch(Exception e) {
            System.err.println("Error");
        }
    }

    public Alien() {
        Alienx = 370;
        Alien = new Rectangle(Alienx, y, 15, 15);
    }

    public void setXDirection(int xdir) {
        xDirection = xdir;
    }

    public void draw(Graphics g) {
        g.setColor(Color.GREEN);
        g.fillRect(Alien.x, Alien.y, Alien.width, Alien.height);
    }

    public void move() {
        Alien.x += xDirection;
        if(Alien.x <= 0) {
            setXDirection(+1);
        }
        if(Alien.x <= 400) {
            setXDirection(-1);
        }
    }
}

0 个答案:

没有答案