2008年度ゲームプログラミング ゲームプログラミング 第7回:一人テニスゲーム、完成! (ゲームとしての体裁を整える) 2008年度ゲームプログラミング オープニング画面を出そう(1) ゲームオーバー画面と同じように作る gameStateの値でオープニング画面の状態 かどうかを区別(gameState:3) タイトル、操作方法等を表示する ボタンが押されたらスタートするように 2008年度ゲームプログラミング オープニング画面を出そう(2) ゲームの状態の流れ ↓オープニング gameState:3 ↓ゲーム中 gameState:0 ↓ ゲームオーバー gameState:1 または ゲームクリアー gameState:2 ↓ ↓オープニング gameState:3 2008年度ゲームプログラミング オープニング画面を出そう(3) 決定ボタンが押されたら if(gc.isKeyPushed(gc.KEY_SELECT)){ 「ボタンが押された時の処理」 ・gameStateが3だったら0に ・gameStateが1か2だったら3に } 2008年度ゲームプログラミング オープニング画面を出そう(4) drawGame()内で文字等の表示 if(gameStateが3){ タイトルを表示 説明(ルール、キー操作等)を表示 } 起動後はオープニングから始まるので、コン ストラクタ(メソッドgame)の最後で、 gameStateを3に 2008年度ゲームプログラミング ハイスコアの保存(1) それまでに取った最も高い得点がハイスコア として表示されるようにする。 ハイスコアを保存するたの変数が必要 int high=0; init()内では初期化しない。 →ゲームを始めるごとに初期化されてしまう →変数の宣言と同時、またはコンストラクタ 内で初期化する 2008年度ゲームプログラミング ハイスコアの保存(2) ハイスコアの更新処理 if(スコアがハイスコアより大きい){ ハイスコア=スコア; } →スコアに変化があった時に (updateGame内で毎回判定しても可) ハイスコアの表示 →gc.drawString();を使う 2008年度ゲームプログラミング スクラッチパッドに保存 一般的な変数 →アプリを終了時に破棄される スクラッチパッドのデータ →アプリを終了させても値が保持される。 →次回起動時に値を参照できる エミュレーター上ではファイルとして保存される (spフォルダの下) 2008年度ゲームプログラミング スクラッチパッド使用の準備 データ領域の確保 Project→ADF設定でSPsizeに値を入れる。 (1024等→1024byte保存できる) 保存したいパラメータを決める ハイスコア等の最高記録、 ボリューム等のユーザー設定情報 2008年度ゲームプログラミング スクラッチパッドの使用(1) 読み取り、書き込みメソッド →サンプルをコピー、適宜呼び出す →最終課題等で使う場合は適宜改造 スクラッチパッドのデータはbyte型の配列 byte型:-128~127の値を取る 範囲を超える数を保存したい場合は int型用の保存メソッドを仕様する 2008年度ゲームプログラミング スクラッチパッドの使用(2) 読み込みの命令 loadHighScore() →保存領域(ファイル)があればhighに値を読 み込み。なければ保存領域をデータ作成 →起動時に1回だけ呼ぶ(コンストラクタ内) 書き込みの命令 saveHighScore() →変数highの値を保存領域に書き込み →ハイスコアスコア更新時に →処理が重くなる時はゲーム終了時等に 2008年度ゲームプログラミング ゲームをより面白くする どうしたら面白くなるか考える ↓ それをどうやったら実現できるか考える ↓ プログラムを組んでみる ↓ 実際に遊んでみて調整 2008年度ゲームプログラミング 最終課題に向けて これまでに学んだことを駆使して、どんなゲー ムを作れるか考えよう →最後の授業で優秀な作品を作った人を表彰 →今までに無い、新しいゲームを作った人は、 別途表彰 最終課題の容量の制限 →フロッピーディスク1枚分(1.4メガ) (実行ファイル、リソース、プログラム) →画像や音は容量を食うので、計画的に。
© Copyright 2024 ExpyDoc