我正在尝试创建一个太空入侵者游戏,到目前为止,我已经使用左右键控制了角色控制的船的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);
}
}
}