2016 ソフトウェア設計及び演習用の班Wiki
gr07::日山 拓海
作成したモジュールの説明は以下のリンク参照 (Gmainクラスのtitle()・result()・graph()/soundクラス以外を実装)
第6回
システムの骨組み完成
がんちゃんの移動制御プロトタイプ、攻撃制御プロトタイプ完成
<移動>
加速度:0.3
最大速度:4
ジャンプの高さ:120
移動には慣性が働く
<攻撃>
電撃 x:50 y:100 持続時間:20 クールタイム:60
歯車 x:50 y:50 持続時間:フィールド端につくまで 同時発射数:3 移動速度:10
ブロック配置 x:100 y:80の位置に配置 同時配置数:3 持続時間:180 クールタイム:120
<画像表示>
画像表示 Handleを格納するGraph_Handleクラス
画像読み込み Gmain::load()でGarph_Handleクラスを参照→Handleに読み込ませる
画像表示 Gmain::garaph()でGraph_Handleクラスを参照→Handleを使って表示
<キーボード入力>
Key(KEY_INPUT_xx)==1 xxが一回押されたら
Key(KEY_INPUT_xx)!=0 xxが押され続けたら
キーボード制御はmain.hに記述
<クラス関連>
フィールド制御 Fieldクラス
キャラクター情報 Charaクラス(Fieldクラス継承)
メイン制御 Gmainクラス
ソケット通信 Connectクラス
敵制御 enemyクラス(Charaクラス継承)
画像用Handle格納 Graph_Handleクラス
CharaクラスとGraph_HandleクラスはGmain::loop内でnew演算子を用いて宣言しているため、deleteを忘れないこと
第7回
・ブロックの設置制御、がんちゃんの攻撃制御実装
・電撃は黄色ブロックで塗りつぶした領域、歯車は赤ブロックで塗りつぶした領域が攻撃範囲となる。
・ブロック設置は、白く塗りつぶした領域に設置するように実装。
・クラスは継承を無くした。
・移動方向によって歯車の飛ぶ方向と、ブロックの配置する方向を決定する。
・最後の入力があった方向によって、右なら1,左なら0を格納しておく。
第8回
・背景の描画を統合 ・フィールドの移動条件を変更...自機がスクリーンのx=420を超えようとしたら、フィールド座標が動き、スクリーン上の自機の位置は変化しないままフィールドを移動するようにした。 ・フィールド上の敵と単位の位置をロードする関数を実装 ・タイトル、リザルト、フィールド情報をロードする部分の統合をした。 ・関数の配置と変数のチェックを行い、FPSの改善を行った。
第10回
・自機と敵のあたり判定の関数を実装...自機と敵は円判定とし、半径はともに25とした。 ・あたり判定はEnemyクラスにまとめて実装 ・敵の情報のロードは初めに行い、敵の出現数でハードとイージーを判別する
第11回
・上空の判定をなくし、FIELDクラスのデータの範囲だけで移動が可能とした
・単位を10個獲得したらクリアフラグが立つようにした
・サウンド関連のクラスSoundクラスを用意
・Gmain::load()関数の中身を最初にハードとイージーの敵情報をロードするように変更
・単位の座標をハードとイージーで切り替えられるように実装
第12回
・敵の攻撃を3回連続から2回連続に変更 ・槇が実装したサウンドクラスとキャラ描画を統合 ・描画位置の修正 ・自機の落下速度、ジャンプの初速、攻撃速度を調整 ・画像や敵情報のロードタイミングを調整することで処理落ちを回避
第13回
・ハードモードの実装
・ハードモードのロードの時にデータが破壊されるバグを解消
・槙との統合でキャラ画像を表示
・クリアフラグの整理 0:デフォルト 1:留年 2:クリア
・がんちゃんの最高移動速度 4に変更
・Connectクラス削除
第14回
・敵の弾幕の制御をデバッグできるようにファイル出力制御を追加
・ソケット通信用の変数と処理を実装
・スコア計算を変更 敵の撃破スコアの追加
・スコア=1000-time/2+単位*100+撃破数*200
・敵側プログラムに送るデータ配列
[0]:自機のフィールド座標を100で正規化した値
[1]:'_'//判断用のアンダーバー
[2]~[enemyの数+2]:敵の状態 0:未出現 1:出現 2:倒された
・敵側プログラムから送られてくるデータ配列
[0][enemyの数]:敵の行動命令 0:静止 1:突撃 2:円運動[enemyの数]
第15回
・ソケット通信プログラムをメインのプロジェクトに統合
・敵の弾幕をなくし、不規則な円運動をするプログラムを実装
・敵側プログラムとの接続完了
・titleのconnectionを選択することで、serverlistern()が実行され、敵側プログラムと接続するまで応答なし状態になるが、接続が完了すると最初の選択肢に戻る。
・atkflagは敵の弾幕攻撃ではなく、円運動の開始フラグに変更
・atkflagとmoveflagは、敵側プログラムから静止命令が来なくても、画面外に出れば停止する。しかし、画面に再び描画されたときには動作を開始する。そのため、完全に静止させるためには、敵側プログラムからの命令が必要
・敵側プログラムに送るデータ配列変更
[0][1]:自機のフィールド座標を100で正規化した値
[2]:'_'//判断用のアンダーバー
[3][4]:敵の出現数
[5]:'_'//判断用のアンダーバー
[6]~[enemyの数+2]:敵の状態 0:未出現 1:出現 2:倒された
・敵側プログラムから送られてくるデータ配列
[enemyの数]:敵の行動命令 0:静止 1:突撃 2:円運動:[enemyの数]
<ゲーム画面>
最終更新日:2016/08/05 02:01:16