スイッチを介してforループの最初の反復に対してのみ特定のイメージを設定しようとしています。 case 'f'
については、最初の繰り返しで別の画像を追加したいと思います。スイッチJavaの最初のラウンドのためのIfステートメントの作成
どうすればよいですか?スイッチ内で追跡することも可能ですか?
for (char c : symbols) {
switch (c) {
case 'X':
g2.setColor(Color.BLACK);
g2.drawImage(wallImg, x, y, width, height, null);
break;
case 's':
g2.setColor(Color.GREEN);
g2.drawImage(snakeImg, x, y, width, height, null);
break;
case 'f':
g2.setColor(Color.ORANGE);
g2.drawImage(burgerImg, x, y, width, height, null);
break;
case '.':
g2.setColor(Color.WHITE);
g2.fillRect(x, y, width, height);
break;
case '\n':
y += height;
}
は、スイッチの前にブールフラグを追加します。 if(boolean flag)をチェックしてtrue/falseであるかどうかを確認します。そうであればelseに入り、別のイメージをロードすることができます。 – Artemis
ペインティングが発生するかどうか、ペインティングがいつ、どのように行われるかを制御することができないため、繰り返し回数はペインティングプロセスの一部であってはなりません。オブジェクトの状態の変更は、ゲームループ内になければなりません(おそらくスイングタイマー)。ペインティングメソッドはモデルの状態を反映するだけで、変更することはできません。 –
これは解決策としてマークしていない@ user5402問題を解決しましたか?それからどのような問題がありましたか? – Artemis