/* シューティングゲーム */
//敵は2機ですが
//敵を生成する 敵を移動する を改良すれば敵を増やすことができます。

「キャラクタ.rdr」を参照する
「エネミー.rdr」を参照する
時間は0

//ウィンドウサイズ
横サイズは300
縦サイズは400

プレイヤ速度は8
自機当たり判定は10
敵当たり判定は15

基準点は0

ゲームウィンドウを表示する
待機する

敵を生成する手順
	/**** ゲーム中に現れる敵の種類は、ここに定義します ***/
	敵Ａというエネミー2を作る
	その出現時間は５
	
	敵Ｂというエネミー8を作る
	その出現時間は3
	その横出現位置は０
	その縦出現位置は50
	その進行方向は0
終わり

敵を移動する手順
	/**** 敵の動きは、ここに記述します ***/
	1.5秒毎に敵Ａを90度、右へ回転させる
	敵Ａを3だけ進ませる
	敵Ｂを５だけ進ませる
終わり

ゲームウィンドウとは
	ウィンドウを継承する
	＋時間は０
	＋プレイヤ
	＋エネミー配列は｛｝
	＋待機エネミー配列は｛｝
	＋プレイヤ弾配列は｛｝
	＋エネミー弾配列は｛｝
	＋ゲーム中
	＋ゲームオーバーは×
	＋キャンバス1は｛｝
	＋スコアは0
	＋カウンタは0
	＋進行間隔は50
	＋フレーム
	
	＋現在時間は0
	
	はじめの手順
		ーー貼り付けた部品に対する操作をここに書きます
		初期化する
		ゲーム進行というタイマーを作る
		ゲーム進行の時間になった時の手順は、ゲームを進行する
		ゲーム進行の間隔は、進行間隔

		キャラ生成というタイマーを作る
		キャラ生成の時間になった時の手順は、キャラを生成する
		キャラ生成の間隔は100
		
		この内部領域大きさは｛横サイズ、縦サイズ｝
		ゲームを開始する
	終わり
	
	初期化する手順
	ーー自動生成された手順です。ここにプログラムを書き加えても消える場合があります
	この背景色は「灰」
	この種類は「固定」
	この初期位置は「中央」
	この内容は「シューティングゲーム」
	このドラッグドロップは○
	キャンバスというキャンバスを作る
		その位置と大きさは｛0、0、284、361｝
		その内部大きさは｛0、0｝
		その余白は｛0、0｝
		その移動順は1
		その倍率は1
		そのドッキング方向は「全体」
		その自動更新は×
	この設計スケール比率は｛96,96｝
終わり

ゲームを開始する手順
	フレームは、1000÷進行間隔
	キャラ生成を開始
終わり

ゲームを進行する手順
	ゲーム中なら
	
		現在時間を増やす
		
		キャンバスに子キャンバスを作ってキャンとする
		その位置と大きさは｛0,0,横サイズ,縦サイズ}
		その背景色は、白
		キャンを隠す
		キャンバス1にキャンを加える
		プレイヤ移動
		プレイヤを描写する
		プレイヤ弾を移動する
		エネミーを出現させる
		敵を移動する
		エネミーを移動する
		エネミー配列のすべてのエネミーについてそれぞれ繰り返す
			エネミーが発射準備する
		そして
		エネミー弾を移動する
		エネミーを判定する
		プレイヤを判定する
		スコアを表示する
		ゲームオーバーが○なら
			キャンバス1(2)に「ゲームオーバー」という文字を書く
			その位置は｛80,190｝
			その文字サイズは20
			キャンバス1(2)に「Rでリトライ」という文字を書く
			その位置は｛80,240｝
			その文字サイズは12
			キャンバス1(2)に「Eで終了」という文字を書く
			その位置は｛80,260｝
			その文字サイズは12
		そして
		キャンバスを更新する
		キャンバス1(2)を表示する
		キャンバスからキャンバス1(1)を消す
		キャンバス1は、キャンバス1から1を消したもの
	ーー	キャンバスを更新する
	そして
終わり

キャラを生成する手順
	ーー時間を増やす
	キャンバスに子キャンバスを作ってキャンとする
		その位置と大きさは｛0,0,横サイズ,縦サイズ}
		その背景色は、白
	キャンバス1にキャンを加える
	プレイヤは、プレイヤを作ったもの
		その横出現位置は150
		その縦出現位置は300
		その横速度は０
		その縦速度は０
	プレイヤを描写する
	敵を生成する
	キャンバスを更新する
	ゲーム進行を開始する
	ゲーム中は○

	キャラ生成を停止する
終わり

プレイヤ移動手順
	Ｘは１
	プレイヤを移動する
	プレイヤの縦出現位置が15以下なら
		プレイヤの縦出現位置は15
	他でプレイヤの縦出現位置が縦サイズ-25以上かつプレイヤの縦出現位置が1000以下なら
		プレイヤの縦出現位置は、縦サイズ-25
	他でプレイヤの横出現位置が15以下なら
		プレイヤの横出現位置は15
	他でプレイヤの横出現位置が横サイズ-25以上なら
		プレイヤの横出現位置は、横サイズ-25
	そして
	プレイヤを描写する
終わり

エネミーを出現させる手順
	Ｘは１

ーー待機エネミー配列を報告
	Ｘが待機エネミー配列の個数以下の間繰り返す		
		現在時間が（待機エネミー配列（Ｘ）の出現時間×フレーム）以上なら
			エネミー配列に、待機エネミー配列(Ｘ)を加える
			待機エネミー配列は、待機エネミー配列からＸを消したもの
		そうでなければ
			Ｘは、Ｘ＋１
		そして
	そして	
終わり

エネミーを移動する手順
	Ｘは１
	Ｘがエネミー配列の個数以下の間繰り返す
		エネミは、エネミー配列(Ｘ)
		エネミを移動する
		エネミを描写する
		エネミの縦出現位置が0未満またはエネミの縦出現位置が縦サイズより大きいまたは
		エネミの横出現位置が０未満またはエネミの横出現位置が横サイズより大きいなら
			エネミー配列は、エネミー配列からＸを消したもの
		そうでなければ
			Ｘは、Ｘ＋１
		そして
	そして
終わり

プレイヤを判定する手順
	Ｘは１
	(Ｘがエネミー弾配列の個数以下)の間繰り返す
		弾は、エネミー弾配列（Ｘ）
		プレイヤと弾が自機当たり判定で衝突したなら
			プレイヤの縦出現位置は2000
			プレイヤを描写する
			エネミー弾配列は、エネミー弾配列からＸを消したもの
			ゲームオーバーは○
		そうでなければ
			Ｘは、Ｘ＋１
		そして
	そして
	Ｘは１
	Ｘがエネミー配列の個数以下の間繰り返す
		敵は、エネミー配列（Ｘ）
		プレイヤと敵が自機当たり判定で衝突したなら
			プレイヤの縦出現位置は2000
			ゲームオーバーは○
		そうでなければ
			Ｘは、Ｘ＋１
		そして
	そして
終わり

エネミーを判定する手順
	Ｘは１
	Ｘがプレイヤ弾配列の個数以下の間繰り返す
		弾は、プレイヤ弾配列（Ｘ）
		Ｙは１
		ヒットは０
		Ｙがエネミー配列の個数以下の間繰り返す
			敵は、エネミー配列(Ｙ)
			敵と弾が敵当たり判定で衝突したなら
				敵のライフを減らす
				ヒットを増やす
			そして
			敵のライフが0以下なら
				エネミー配列は、エネミー配列からＹを消したもの
				スコアは、スコア＋敵のスコア
			そうでなければ
				Ｙは、Ｙ＋１
			そして
		そして
		ヒットが1以上なら
			プレイヤ弾配列は、プレイヤ弾配列からＸを消したもの
		そうでなければ
			Ｘは、Ｘ＋１
		そして
	そして
終わり

【キャラ】と【弾】が【当たり判定】で、衝突する手順
	（キャラの横出現位置-弾の横出現位置）の絶対値が当たり判定以下かつ
	（キャラの縦出現位置-弾の縦出現位置）の絶対値が当たり判定以下なら
		真を返す
	そうでなければ
		偽を返す
	そして
終わり

エネミー弾を移動する手順
	Ｘは１
	Ｘがエネミー弾配列の個数以下の間繰り返す
		弾は、エネミー弾配列(Ｘ)
		弾を移動する
		弾を描写する
		弾の縦出現位置が縦サイズ以上または弾の縦出現位置が０以下または
		弾の横出現位置が０以下または弾の横出現位置が横サイズ以上なら
			エネミー弾配列は、エネミー弾配列からＸを消したもの
		そうでなければ
			Ｘは、Ｘ＋１
		そして
	そして
終わり

プレイヤ弾を移動する手順
	Ｘは１
	Ｘがプレイヤ弾配列の個数以下の間繰り返す
		弾は、プレイヤ弾配列(Ｘ)
		弾を移動する
		弾を描写する
		弾の縦出現位置が縦サイズ以上または弾の縦出現位置が０以下または
		弾の横出現位置が０以下または弾の横出現位置が横サイズ以上なら
			プレイヤ弾配列は、プレイヤ弾配列からＸを消したもの
		そうでなければ
			Ｘは、Ｘ＋１
		そして
	そして
終わり

スコアを表示する手順
	キャンバス１(2)に「スコア：　[スコア]」という文字を書く
		その位置は｛180,10｝
		その文字サイズは13
終わり

キャンバスのキーが押された時の手順
	ゲーム中でなければ抜け出す
	イベントのキー名について分岐
	「←」の場合
		プレイヤの横速度は、-プレイヤ速度
	「↑」の場合
		プレイヤの縦速度は、-プレイヤ速度
	「→」の場合
		プレイヤの横速度は、プレイヤ速度
	「↓」の場合
		プレイヤの縦速度は、プレイヤ速度
	「スペース」の場合
		プレイヤ弾丸を作る
			その横出現位置は、プレイヤの横出現位置
			その縦出現位置は、プレイヤの縦出現位置
			その横速度は0
			その縦速度は-10
	「R」の場合		//もっかい
		ゲームオーバーなら
			プレイヤの横出現位置は150
			プレイヤの縦出現位置は300
			エネミー配列は｛｝
			エネミー弾配列は｛｝
			プレイヤ弾配列は｛｝
			ゲームオーバーは×
			現在時間は０
			敵を生成する
		そして
	「E」の場合		//終わり
		ゲームオーバーなら
			ゲーム中は×
			終了する
		そして
	そして
終わり

キャンバスのキーが離された時の手順
	ゲーム中でなければ抜け出す
	イベントのキー名について分岐
	「←」の場合
		プレイヤの横速度は0
	「↑」の場合
		プレイヤの縦速度は０
	「→」の場合
		プレイヤの横速度は0
	「↓」の場合
		プレイヤの縦速度は０
	そして
終わり
終わり