コンテンツにスキップ

シューティングゲームを作ろう

Lv.0 setupとdraw

setup関数とdraw関数を用意しよう。

Lv.1 600x400の画面を表示しよう。

画面の表示はsize命令を使うんだったね。

Lv.2 プレイヤーとなる四角形を表示しよう。

四角形はrect命令を使うんだったね。 横50、縦200の位置に表示しよう。

Lv.3 プレイヤーを画像に置き換えよう。

player01.png

PImage命令で画像を読み込んで、image命令で表示するんだったね。

画像を表示しよう

Lv.4 プレイヤーをアニメーションさせよう。

player02.png

ジェット噴射している画像と交互に入れ替えるんだ。

Lv.5 プレイヤーをキーボードで動かそう。

上下キーで縦に移動させよう。横はいらないよ。

Lv.10 自動で弾丸を発射させよう。

きちんとプレイヤーの前の位置から発射させよう。

Lv.11 弾丸が画面の端までいったらもう一度発射させよう。

Lv.11.1 ここまでのプログラムコード

shootingsample.zip

Lv.20 敵を表示しよう

  • 横500, 縦200の位置に表示しよう。
  • 表示位置は、「tx」、「ty」で変数にしておこう。

Lv.21 敵をまっすぐ進ませよう

  • 敵を左方向に進ませよう。
  • 敵のスピードは、「 ts 」で変数にしておこう。

Lv.22 敵が画面からはみ出したらもう一度出現させよう

  • 敵が画面左からはみ出したら、もう一度右から出現させよう。

Lv.23 敵の再出現時にランダムな位置に表示しよう

  • 再出現時に、敵の縦の位置(ty)をランダムな位置にしよう。

ヒント:

  • ランダムな値は、 random命令 で取得できるぞ。
  • 取得した値を、変数「 ty 」に代入しよう。

Lv.30 敵と銃弾との当たり判定を作ろう

以下の4つの条件が全てそろったとき、衝突している。

1. 銃弾の中心xが、敵の左端より右にある
2. 銃弾の中心xが、敵の右端より左にある
3. 銃弾の中心yが、敵の上端より下にある
4. 銃弾の中心yが、敵の下端より上にある

Lv.40 たまにスピードの速い敵を出現させよう

Lv.80 宇宙っぽい背景を作ろう

img03.png

宇宙の星屑たちが、左に流れていく。臨場感がでるぞ!ぜひ挑戦してくれ。

なお、実現するには配列を使うぞ。配列は難しいが、ぜひ挑戦してくれ。

以下は参考プログラムだ。

float[] sx = new float[50];
float[] sy = new float[50];
void setup(){
size(600, 400);
for(int i=0; i<50; i++){
sx[i] = random(0, 600);
sy[i] = random(0, 400);
}
}
void draw(){
background(0);
for(int i=0; i<50; i++){
sx[i] -= 3;
if(sx[i] < 0){
sx[i] = 600;
}
fill(255, 255, 255, 150);
ellipse(sx[i], sy[i], 3, 3);
}
}

Lv.99 連射機能を作ろう