私は蛇のゲームを作ろうとしています。そのために、蛇を作る個々のPointオブジェクトを格納するためにArrayListを使用しました。次のコードは、ヘビを作成します。なぜこの作品はありません(JavaのArrayList)?
private void createSnake() {
for (int i = 0; i < maxLenght; i++) {
snakeParts.add(new Point(head.x, head.y + (i * 16)));
}
}
maxLenghtは、デフォルトでは3に設定され、このコードは一度だけ呼び出されます。私がそれをしたいのは、ヘビの最初の3つの部分を表す3つのPointオブジェクトを列の左上隅に作成することですが、何らかの理由で左上隅に1つだけ作成するか、同じポジションで、どうすればそれを機能させることができますか?
注:タイマーのレンダリング方法を使用していますので、毎秒何回も何度も発生するはずです。
ありがとうございます。
EDIT:これはヘビクラスのコンストラクタです
public ArrayList<Point> snakeParts;
public Point head;
public Snake() {
snakeParts = new ArrayList<Point>();
head = new Point(0, 0);
curDir = 1;
createSnake();
}
EDIT 2:これは
public class Renderer extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.BLACK);
g.fillRect(0, 0, Core.frame.getWidth(), Core.frame.getHeight());
Snake snake = new Snake();
g.setColor(Color.WHITE);
for (Point point : snake.snakeParts) {
g.fillRect(snake.head.x, snake.head.y, 16, 16);
}
}
、 'maxLenght'は、あなたのそれがあることを期待したものでしょうか?私はそれが常に「1」だと思う。 –
働かないとどういう意味ですか?例外はありますか?詳細を追加すると、回答を得るのに役立ちます。 – Sachin
あなたはそれを見るためにもっとコードを提供できますか?どのようにあなたの 'Point'コンストラクタとArraylistを宣言して定義していますか? –
SRJ