私は小さなスペース インベーダー プロジェクトを作成しており、常にエイリアンを左から右へループさせています。画面の端に到達すると、右側を再描画し、再び左から右に移動します。私はすでにウィンドウ サイズを設定しており、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);
}
}
編集: 私のペイント メソッドは、すべてのグラフィックを描画するメイン ゲーム機能部分で呼び出されています。作画は問題ありませんが、このクラスの宇宙人の動きです。