今回はProcessingでスロットゲームを作ってみましょう。
イメージとしては、3つのボックスで数字がランダムに表示され、指定されたキーボードを押すことで数を確定できるもの。3つが揃えば “You WIN!” みたいなメッセージが表示される、という感じでしょうか。実際のスロットゲームは、数や絵柄が書いてある円環状のリールが回っているようです。
さて、作りましょう。3つのボックスの値は配列で表すことにします。ステージを以下のように作ってみます。
int[] box = {0, 0, 0};
void setup(){
size(500, 300);
strokeWeight(2);
frameRate(8);
}
void draw(){
background(255);
fill(255);
rect(100,100,100,100);
rect(200,100,100,100);
rect(300,100,100,100);
}
すると、以下のようになります。

では、ボックスの中にランダムで数字が表示されるようにしましょう。
試しに、main() の中に以下のような記述を加えてみます。
textAlign(CENTER);
fill(0);
textSize(30);
int i;
// 左側のボックス
i = (int)random(7) + 1; // 1から7までをランダムで生成
text(i, 150, 160);
if(keyPressed){
if (keyCode == LEFT){
box[0] = i; // ←キーを押した時の値を配列に保存
}
}
これにより、左側のボックスに1から7までの値がランダムで表示されるようになりました。
“if(keyPressed)” が「キーが押されたら」、”if (keyCode == LEFT)” が「押したキーが左矢印(←)なら」ということを表しています。
現状では、←キーを押したときの値を保存しているものの、何も変化が見られません。

キーが押されたときの値を保存し、その後はその値が表示され続けるようにするにはどうすればいいでしょうか。
続きはまた明日~