我创建了一个小型太空侵略者项目,并且我有外星人不断地从左到右循环。当他们击中屏幕的末端时,他们重新从左到右重新画右边。我已经设置了窗口大小,并且已经查看了关于如何在Java中创建空间入侵者的各种教程,但是大多数教程都提到了我尝试的同样的东西。是否有人可以指出我的编码出错了,以便我知道如何解决它。如何让侵略者在java中左右移动
这是外星人类的代码。有不同的外国人,但是所有的类看起来几乎一样,因为这一个:
package spaceinvaders2;
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.ImageIcon;
class Alien extends MoveObject
{
Image Alien = new ImageIcon(getClass().getResource("alien.gif")).getImage();
Alien(int x, int y, int w, int h)
{
super(x, y);
bounds.width = w;
bounds.height = h;
}
public void paint(Graphics g)
{
System.out.println("Alien generated");
bounds.x = bounds.x - 2;
if ((bounds.x + bounds.width)< 0)
{
bounds.x = 750;
dead = false;
}
g.drawImage(Alien,bounds.x,bounds.y,bounds.width, bounds.height, this);
}
}
编辑:我的paint方法被调用在它绘制所有的图形游戏的主要功能的一部分。绘图不是问题,它是这个班级中外星人的运动。
您可以指定什么是错的外星人的运动?从看你的代码我可以说移动速度取决于帧速率可能不是恒定的,但也许这不是问题。 – denahiro 2012-08-08 10:29:52
在不了解代码的情况下很难提供反馈,但基本上在顶层组件中,您需要捕获关键笔划(不,真的;)),可能使用类似键绑定API和调整移动方向参数。根据你想要达到的目标,你可以继续增加/减少方向,直到新的击键被注册为 – MadProgrammer 2012-08-08 10:54:52