http://dixq.net/forum/viewtopic.php?f=78&t=12777
作業記録
► スポイラーを表示
2013/3/21
裏ボス追加。見た目は通常版の色違いで動きも似ているが強化されている。
裏ボスへのルートを易しくした。(それまでは全く無意味な場所だった)
タイトルBGMを変更、裏ボスのBGMを追加。
通常のボスのBGMは前作のボスBGMをそのまま使用。
ロードでセーブデータがない場合ははじめからと同じになるようにした。
2013/3/16
ダンジョンの音楽を変更。
2013/3/13
セーブエフェクトを追加。
エフェクトに関する処理を書き直した。
2013/3/10
マップエディタについて求めているものがないかの質問があったのでそれに合わせてエディタを作ってみる。
(データ形式に関わる部分の変更)ついでに元々のエディタも改良。
マップサイズを変更できるようにした。ただし、サイズを変更するとマップが崩れる問題がある。
マップサイズの表示を追加。
マップ外をoutと表示し、その場所の操作を行えないようにした。
マップのx方向のサイズを変更した際に上に書いたマップの崩れがおきないようにした。一度outになったマスは0になるようにした。
2013/3/9
エフェクト用のファイルを作成し、エフェクトの登録をそのファイルに移した。
前作のボスの赤い爆発をなくした。爆発ごとに別の構造体を用いていたが赤い爆発の分を消去した。
ボスの飛び上がり時の胴の当たり判定をなくした。
2013/3/8
ボスの胴体の処理
ボスの撃破時の処理を追加。
ボスを倒すとエンディングに遷移するようにした。
2013/3/4
ボスの画像を作成。
敵の移動処理に角度と速さによる移動を追加した。
ボスの頭の動きを作成。
前作から残っていたboss構造体とそれに関わる処理をすべて消去。
2013/2/15
タイトルメニュー(最初から、続きから、終わる)の追加
タイトル画像の修正。
2013/2/13
2Fのマップを作成。
セーブ/回復ポイントの作成
踏んだ瞬間に
プレイヤーのHPを回復し、
マップ番号
キャラの座標
スイッチブロックフラグ
宝箱フラグ
アイテム個数
門フラグ
を保存する。
セーブポイントを配置した。
ボス出現時の部屋封鎖処理を追加。
2013/2/12
マップエディタでマップ番号を選択できるようにした。
1Fのマップを作成。
2013/2/10
門について
開いたフラグが立っていない場合は判定を1にして門という敵を出現させる。
開いた後は判定は0のままで敵も出現させない。
それぞれの門を別々の種類として扱う。つまり3種類の敵を追加。
この敵は鍵を持った状態で攻撃すると倒せる。
そのとき小さな鍵は1つ減らし、門のある場所の判定を0にし、門のフラグを建てる。
他の同じ門が開かれた場合、その門も開くようにした。
門の画像の読み込み処理を追加。
門の配置処理を追加。
門の行動関数を書き、動作を確認した。
2013/2/9
小さな鍵、石の靴、ボス鍵の画像を作成。
画像用の変数を追加し、読み込む。
アイテムの表示を追加した。
石の靴を持っていると溶岩でダメージを受けないようにした。
2013/2/8
スイッチとスイッチブロックの画像の読み込み処理を作成。
スイッチブロックが非実体の時の画像を作成。
スイッチブロックはswitch_block_flagで管理するようにした。
赤は0で、青は1でそれぞれ実体で逆なら非実体で通過可能。
スイッチブロックの描画処理を追加。
敵を通過可能かを判定するpass_flagを追加。ただし、今回は意味がない。
スクロール時の処理にswitch_block_flagによる判定の有無の切り替えを行うようにした。
スイッチは敵扱いにし、行動関数にスイッチ切替処理を入れた。
スイッチの切り替えはダメージを受けた直後に1回だけ行う。
switch_block_flagの切り替えと今の画面に存在するスイッチブロックの当たり判定の切り替えを行う。
マップに入るときにカメラの座標をセットする関数を用意した。
プレイヤーと床の判定をjudge.cppに作成。
敵と床の判定は行わない。
溶岩の判定を追加した。
ゲームオーバーの描画処理を少し修正。
階段用に今踏んでいる場所が直前のフレームと同じ場所かを比較する処理を作成。
マップ初期化関数map_ini(map_num)を作成。
マップ内の全ての壁の判定を設定していたmap_hantei_set()の中身を
スクロール関数map_scroll()にいれてしまうことにした。
さらに設定範囲を見えている範囲のみにした。
これにより、配置ミスによってスクロール時に壁に突っ込んで出れなくなる可能性が出たが無視する。
マップ移動時にいったん全ての当たり判定を0にするようにした。
階段の画像を読み込み、描画するようにし、階段の処理が書いた。
階段を踏んだ時に他のマップの同じ位置に移動するようにする。
この時、ファイル読み込み、判定0、カメラ位置設定、今いる場所の設定を行う(map_iniとしている)。
今までのマップ(1F)を1.dat、2Fのマップを2.dat、村のマップを0.datとする。
のぼり階段を踏んだら2.datを読み込み、下り階段を踏んだら1.datを読み込む。
踏んだ瞬間かどうかを調べるため、直前のフレームでどの部分に居たかを記憶する変数ch.pre_floorを追加し、
床との判定後に更新するようにした。
宝箱を作成。宝箱は全部で4つ。
宝箱と扉のフラグ、アイテムの数の変数を追加。
宝箱をあけたかどうか×4
アイテムの個数×3
扉を開けたかどうか×3
宝箱はスイッチと同様に敵として扱う。
閉じた状態のものを4種類、開いた状態のものを1種類の計5種類とする。
閉じているものについては対応するフラグがすでに1だったら開いた状態になるようにしている。
このため、同じ宝箱が複数設置されたとしても一つしか開けない。
剣で攻撃した直後に対応したアイテム入手の処理をし、宝箱が開いたというフラグをたてる。
開いているものについては剣に対する当たり判定がない。
宝箱の場所は通過不可能にした。
2013/2/5
弾の画像を作成。
弾を複数出せるようにした。
弾の処理をbullet.cppに書くようにした。
boss.cppに書いてあった弾の処理を削除した。
2体目が弾を出す処理を書いた。
弾の構造体にどの敵から出されたのかを示す変数を追加した。
double型変数を引数とする描画関数の名前をDrawRotaGraphFからDrawRotaGraphDに変更した。
剣と弾の当たり判定をコメントアウト。
プレイヤーと弾の当たり判定を修正した。
3体目の敵の配置処理を追加。
3体目の敵の行動関数を作成。
32ドット単位で自機に向かって移動(壁や攻撃などによりずれても補正はしない)。
時々炎を出す(3way、ある程度とんだら消える)
敵のflagをstateに変更。
0:敵がいない
1:敵がいて動いている
2:敵は死んでいるが弾が残っている
敵の行動関数を修正。
判定でHPが0になるとstateが2になるようにした。
さらにこの時にcntが0になるようにした。
その敵の撃った弾が全て消えるとstateが2から0になるようにした。
敵の配置時にタイプに応じたHPになるようにした。
敵のタイプの数をENEMY_TYPE_MAXとして定義。
この値以上のtypeの敵が出現しないようにした。
スイッチにダメージを与えてもふきとばないようにするため、
blow_flagを追加。これはボスにも使える。
無敵と吹っ飛び(硬直)を別に扱うため、cnt2を硬直カウントstiff_cntにし、
無敵カウントをmuteki_cntとして追加した。
当たり判定でダメージを受けてもふっとばない場合、硬直カウントは0にままになるようにした。
吹っ飛んでも、吹っ飛ばなくてもダメージ時には無敵になる。
敵のタイプごとの行動関数を修正。敵の計算関数を修正。
吹っ飛び時の動きを敵メイン関数ではなく、敵計算関数の中に移動。
敵の移動について2ヶ所に分かれて記述されていたのを統一して関数にして分けた。
触れてもダメージを受けないようにするdamage_flagを追加。
敵とプレイヤーの当たり判定を修正。
スイッチなど敵扱いだが触れてもダメージを受けない物体の他
すり抜ける敵にも使える。
2013/1/25
2体目(フレイムメイジ)のワープ処理が書けた。
描画フラグ、当たり判定フラグを追加
これらの追加に合わせて
描画処理を修正。
当たり判定(敵と剣、敵と自機)を修正。
2013/1/24
敵の構造体に種類を表す変数を追加。
敵の行動制御を関数ポインタを使って行えるようにした。
2013/1/15
スクロールに伴う雑魚敵の出現・消滅の管理の処理を追加。
スクロールのたびにそれまでいたザコ敵を消滅。
そして、そこに配置している雑魚敵を出現させる。
敵画像ファイルの位置を変更した。
敵画像ハンドルを配列に変更。
敵の描画部分を修正。
マップエディタでチップ番号6を配置して雑魚が出現するようにした。
ザコ敵の移動処理および吹っ飛び時の処理を修正。
ついでに雑魚を倒したときのエフェクトの描画処理も修正。
前作のザコ(一定時間ごとに向きを変える)と同じ動きをする敵(ゴーレム)を作成できた。
2013/1/13
部屋の移動(スクロール)の実装。
移動範囲の設定(前作では(0,0)から(640,480)固定だったが今回はカメラに合わせて変更する)
それに合わせて自機と剣の描画処理を修正。
2013/1/11
マップのデータを
マップのサイズ
マップチップ番号
当たり判定
カメラ
で管理する。
さらに配列は4次(エリア(x1,y1)の座標(x2,y2)というやり方)ではなく、1次とする。
マップ読み込み処理を変更し、チップ番号1の壁を表示できるようにした。
また、壁の判定を設定し、キャラクターが動き回れるようにした。
2013/1/8
マップエディタのチップ画像6から19を作成。
WASDでの表示範囲の調整をよりやりやすくした。
選択している番号のチップの画像がある場合、その画像を表示するようにした。
裏ボス追加。見た目は通常版の色違いで動きも似ているが強化されている。
裏ボスへのルートを易しくした。(それまでは全く無意味な場所だった)
タイトルBGMを変更、裏ボスのBGMを追加。
通常のボスのBGMは前作のボスBGMをそのまま使用。
ロードでセーブデータがない場合ははじめからと同じになるようにした。
2013/3/16
ダンジョンの音楽を変更。
2013/3/13
セーブエフェクトを追加。
エフェクトに関する処理を書き直した。
2013/3/10
マップエディタについて求めているものがないかの質問があったのでそれに合わせてエディタを作ってみる。
(データ形式に関わる部分の変更)ついでに元々のエディタも改良。
マップサイズを変更できるようにした。ただし、サイズを変更するとマップが崩れる問題がある。
マップサイズの表示を追加。
マップ外をoutと表示し、その場所の操作を行えないようにした。
マップのx方向のサイズを変更した際に上に書いたマップの崩れがおきないようにした。一度outになったマスは0になるようにした。
2013/3/9
エフェクト用のファイルを作成し、エフェクトの登録をそのファイルに移した。
前作のボスの赤い爆発をなくした。爆発ごとに別の構造体を用いていたが赤い爆発の分を消去した。
ボスの飛び上がり時の胴の当たり判定をなくした。
2013/3/8
ボスの胴体の処理
ボスの撃破時の処理を追加。
ボスを倒すとエンディングに遷移するようにした。
2013/3/4
ボスの画像を作成。
敵の移動処理に角度と速さによる移動を追加した。
ボスの頭の動きを作成。
前作から残っていたboss構造体とそれに関わる処理をすべて消去。
2013/2/15
タイトルメニュー(最初から、続きから、終わる)の追加
タイトル画像の修正。
2013/2/13
2Fのマップを作成。
セーブ/回復ポイントの作成
踏んだ瞬間に
プレイヤーのHPを回復し、
マップ番号
キャラの座標
スイッチブロックフラグ
宝箱フラグ
アイテム個数
門フラグ
を保存する。
セーブポイントを配置した。
ボス出現時の部屋封鎖処理を追加。
2013/2/12
マップエディタでマップ番号を選択できるようにした。
1Fのマップを作成。
2013/2/10
門について
開いたフラグが立っていない場合は判定を1にして門という敵を出現させる。
開いた後は判定は0のままで敵も出現させない。
それぞれの門を別々の種類として扱う。つまり3種類の敵を追加。
この敵は鍵を持った状態で攻撃すると倒せる。
そのとき小さな鍵は1つ減らし、門のある場所の判定を0にし、門のフラグを建てる。
他の同じ門が開かれた場合、その門も開くようにした。
門の画像の読み込み処理を追加。
門の配置処理を追加。
門の行動関数を書き、動作を確認した。
2013/2/9
小さな鍵、石の靴、ボス鍵の画像を作成。
画像用の変数を追加し、読み込む。
アイテムの表示を追加した。
石の靴を持っていると溶岩でダメージを受けないようにした。
2013/2/8
スイッチとスイッチブロックの画像の読み込み処理を作成。
スイッチブロックが非実体の時の画像を作成。
スイッチブロックはswitch_block_flagで管理するようにした。
赤は0で、青は1でそれぞれ実体で逆なら非実体で通過可能。
スイッチブロックの描画処理を追加。
敵を通過可能かを判定するpass_flagを追加。ただし、今回は意味がない。
スクロール時の処理にswitch_block_flagによる判定の有無の切り替えを行うようにした。
スイッチは敵扱いにし、行動関数にスイッチ切替処理を入れた。
スイッチの切り替えはダメージを受けた直後に1回だけ行う。
switch_block_flagの切り替えと今の画面に存在するスイッチブロックの当たり判定の切り替えを行う。
マップに入るときにカメラの座標をセットする関数を用意した。
プレイヤーと床の判定をjudge.cppに作成。
敵と床の判定は行わない。
溶岩の判定を追加した。
ゲームオーバーの描画処理を少し修正。
階段用に今踏んでいる場所が直前のフレームと同じ場所かを比較する処理を作成。
マップ初期化関数map_ini(map_num)を作成。
マップ内の全ての壁の判定を設定していたmap_hantei_set()の中身を
スクロール関数map_scroll()にいれてしまうことにした。
さらに設定範囲を見えている範囲のみにした。
これにより、配置ミスによってスクロール時に壁に突っ込んで出れなくなる可能性が出たが無視する。
マップ移動時にいったん全ての当たり判定を0にするようにした。
階段の画像を読み込み、描画するようにし、階段の処理が書いた。
階段を踏んだ時に他のマップの同じ位置に移動するようにする。
この時、ファイル読み込み、判定0、カメラ位置設定、今いる場所の設定を行う(map_iniとしている)。
今までのマップ(1F)を1.dat、2Fのマップを2.dat、村のマップを0.datとする。
のぼり階段を踏んだら2.datを読み込み、下り階段を踏んだら1.datを読み込む。
踏んだ瞬間かどうかを調べるため、直前のフレームでどの部分に居たかを記憶する変数ch.pre_floorを追加し、
床との判定後に更新するようにした。
宝箱を作成。宝箱は全部で4つ。
宝箱と扉のフラグ、アイテムの数の変数を追加。
宝箱をあけたかどうか×4
アイテムの個数×3
扉を開けたかどうか×3
宝箱はスイッチと同様に敵として扱う。
閉じた状態のものを4種類、開いた状態のものを1種類の計5種類とする。
閉じているものについては対応するフラグがすでに1だったら開いた状態になるようにしている。
このため、同じ宝箱が複数設置されたとしても一つしか開けない。
剣で攻撃した直後に対応したアイテム入手の処理をし、宝箱が開いたというフラグをたてる。
開いているものについては剣に対する当たり判定がない。
宝箱の場所は通過不可能にした。
2013/2/5
弾の画像を作成。
弾を複数出せるようにした。
弾の処理をbullet.cppに書くようにした。
boss.cppに書いてあった弾の処理を削除した。
2体目が弾を出す処理を書いた。
弾の構造体にどの敵から出されたのかを示す変数を追加した。
double型変数を引数とする描画関数の名前をDrawRotaGraphFからDrawRotaGraphDに変更した。
剣と弾の当たり判定をコメントアウト。
プレイヤーと弾の当たり判定を修正した。
3体目の敵の配置処理を追加。
3体目の敵の行動関数を作成。
32ドット単位で自機に向かって移動(壁や攻撃などによりずれても補正はしない)。
時々炎を出す(3way、ある程度とんだら消える)
敵のflagをstateに変更。
0:敵がいない
1:敵がいて動いている
2:敵は死んでいるが弾が残っている
敵の行動関数を修正。
判定でHPが0になるとstateが2になるようにした。
さらにこの時にcntが0になるようにした。
その敵の撃った弾が全て消えるとstateが2から0になるようにした。
敵の配置時にタイプに応じたHPになるようにした。
敵のタイプの数をENEMY_TYPE_MAXとして定義。
この値以上のtypeの敵が出現しないようにした。
スイッチにダメージを与えてもふきとばないようにするため、
blow_flagを追加。これはボスにも使える。
無敵と吹っ飛び(硬直)を別に扱うため、cnt2を硬直カウントstiff_cntにし、
無敵カウントをmuteki_cntとして追加した。
当たり判定でダメージを受けてもふっとばない場合、硬直カウントは0にままになるようにした。
吹っ飛んでも、吹っ飛ばなくてもダメージ時には無敵になる。
敵のタイプごとの行動関数を修正。敵の計算関数を修正。
吹っ飛び時の動きを敵メイン関数ではなく、敵計算関数の中に移動。
敵の移動について2ヶ所に分かれて記述されていたのを統一して関数にして分けた。
触れてもダメージを受けないようにするdamage_flagを追加。
敵とプレイヤーの当たり判定を修正。
スイッチなど敵扱いだが触れてもダメージを受けない物体の他
すり抜ける敵にも使える。
2013/1/25
2体目(フレイムメイジ)のワープ処理が書けた。
描画フラグ、当たり判定フラグを追加
これらの追加に合わせて
描画処理を修正。
当たり判定(敵と剣、敵と自機)を修正。
2013/1/24
敵の構造体に種類を表す変数を追加。
敵の行動制御を関数ポインタを使って行えるようにした。
2013/1/15
スクロールに伴う雑魚敵の出現・消滅の管理の処理を追加。
スクロールのたびにそれまでいたザコ敵を消滅。
そして、そこに配置している雑魚敵を出現させる。
敵画像ファイルの位置を変更した。
敵画像ハンドルを配列に変更。
敵の描画部分を修正。
マップエディタでチップ番号6を配置して雑魚が出現するようにした。
ザコ敵の移動処理および吹っ飛び時の処理を修正。
ついでに雑魚を倒したときのエフェクトの描画処理も修正。
前作のザコ(一定時間ごとに向きを変える)と同じ動きをする敵(ゴーレム)を作成できた。
2013/1/13
部屋の移動(スクロール)の実装。
移動範囲の設定(前作では(0,0)から(640,480)固定だったが今回はカメラに合わせて変更する)
それに合わせて自機と剣の描画処理を修正。
2013/1/11
マップのデータを
マップのサイズ
マップチップ番号
当たり判定
カメラ
で管理する。
さらに配列は4次(エリア(x1,y1)の座標(x2,y2)というやり方)ではなく、1次とする。
マップ読み込み処理を変更し、チップ番号1の壁を表示できるようにした。
また、壁の判定を設定し、キャラクターが動き回れるようにした。
2013/1/8
マップエディタのチップ画像6から19を作成。
WASDでの表示範囲の調整をよりやりやすくした。
選択している番号のチップの画像がある場合、その画像を表示するようにした。