オープニング~ゲームオーバー

2002年度ゲームプログラミング
ゲームプログラミング
第9回:一人テニスゲーム、完成!
(ゲームとしての体裁を整える)
2002年度ゲームプログラミング
オープニング画面を出そう(1)

ゲームオーバー画面と同じように作る

ゲームのwhileループの前に、もう一つwhile
ループを作る

タイトル、操作方法等を表示する

ボタンが押されたらスタートするように
2002年度ゲームプログラミング
オープニング画面を出そう(2)

オープニングのループ
(ゲームのwhileループの前に置く)
while(…){ //Escを押したら終了
ボタンを押したらbreak;
文字を登録
sp_update();
wait();
}
2002年度ゲームプログラミング
MIDIを鳴らす場合

オープニングの曲を鳴らしたい場合は、
オープニングのwhileの前にmid_loop();

ゲーム中に曲を流したい場合は、ゲームの
whileとオープニングのwhileの間に
mid_loop();

両方のループでそれぞれ別の曲を流す場合は、
一度mid_close()を行ってから再びmid_open()
すること
2002年度ゲームプログラミング
繰り返し遊べるようにする(1)

今までのプログラムの流れ
↓初期設定
↓オープニング
↓ゲーム中
↓ゲームオーバー
↓プログラム終了

中央の3つ(オープニング~ゲームオーバー)
をwhileを使ってくり返す。
2002年度ゲームプログラミング
繰り返し遊べるようにする(2)

プログラムの流れ
↓初期設定
while(…){
↓オープニング
↓ゲーム中
↓ゲームオーバー
}
↓プログラム終了
2002年度ゲームプログラミング
繰り返し遊べるようにする(3)

ファイル読み込み、キャラクターの設定等は
最初に1回だけすればOK

ボールの座標、スコア等はゲームの度に初
期化することが必要
→ゲームのwhileループの前で
座標、スコアを初期化してやる
2002年度ゲームプログラミング
プログラムの整理

一つの関数(main関数等)が大きすぎると、
流れを理解するのが大変で、バグも発生しや
すい

初期設定、タイトルのループ、ゲーム中の
ループ、ゲームオーバーのループ等を、それ
ぞれ関数化してみよう

パラメータの受け渡し(引数)を減らす為に、
グローバル変数を使ってみよう
2002年度ゲームプログラミング
グローバル変数(1)

普通の変数
→関数の中でのみ有効

グローバル変数
→プログラム全体で有効

有効範囲が広すぎるので、多人数で開発す
る際には慎重な使用(もしくは使わないこと)
が望まれる
2002年度ゲームプログラミング
グローバル変数(2)

宣言の方法
→関数の外で、使用する前に宣言。
#include “gdk.h”
int sp,bg; //sp,bgのグローバル宣言
main(){
sp=…;
}
//グローバル変数の使用
//(main以外の関数でも使用可能)
2002年度ゲームプログラミング
整理後のmain関数(一例)
main(…){
initGame();
//ファイル読み込み等
while(…){
opening(); //オープニングループ
playGame(); //ゲームのループ
ending();
//ゲームオーバー
}
endGame(); //終了処理
}
2002年度ゲームプログラミング
ゲームをより面白くする
 どうしたら面白くなるか考える
↓
 それをどうやったら実現できるか考える
↓
 プログラムを組んでみる
↓
 実際に遊んでみて調整
2002年度ゲームプログラミング
最終課題に向けて
これまでに学んだことを駆使して、どんなゲー
ムを作れるか考えよう
→最後の授業で優秀な作品を作った人を表彰
→今までに無い、新しいゲームを作った人は、
別途表彰


最終課題の容量の制限
→フロッピーディスク1枚(1.4メガ)
→画像は結構容量を使うので、(フルサイズで
2枚程度が限界)、計画的に使おう