アイテム、ワナ、キャラなどのイベント管理について
15/01/05改稿
いよいよローグライクの中身ですね~。
ダンジョン生成が終わったら、次にアイテムやワナやキャラをどうやって管理するか考えることにします。
・アイテム管理
まぁいろいろ方法はあるでしょうが、個人的には全マスDB+アイテム個別IDでピクチャを使った管理をお勧めします。
アイテムを置くときはマップの全マスの配置アイテムデータを保存しているDBにアイテムの個別IDを書き込み(X5Y10にアイテムID3を置くんだったら全マスDBのデータ5項目10に3を代入とか)、アイテムが拾われたり消滅したりしたら全マスDBから消去する感じですね。
それから、アイテム情報の管理はひとつのDBにまとめてしまうことを強くおすすめします。
装備も消費アイテムも、落ちているアイテムも持っているアイテムも、全部ひとつのDBにまとめておいた方が後々絶対に楽です。処理が簡単になる=バグを減らせるので。ローグの崖で痛い目にあった僕がいうので、これは間違いないです…。
手持ちアイテムの管理については、こちらもいろいろと方法があるでしょうが、個人的には手持ちアイテムのID(102、103とかの数字)をだけを保管するDBをつくって管理することをお勧めします。
もちろん床落ち状態と区別するために、アイテムのステータスとして「手持ち状態」と「床落ち状態」を区別する項目は必要になりそうですね~。
そういえば、ワールドフロンティアでは主人公専用の手持ちアイテムDBを廃止して、キャラクターのステータス内に文字列で手持ちアイテムなる項目を設けました。
こうすることで敵も主人公と同様複数のアイテムを持てるようになったりして管理が楽になることもあるので、興味のある方はそっちの方の記事もご覧いただければと思います。
・ワナ管理
長くなりましたが、ワナ管理です。
こちらは性質上アイテムと似ている(アイテムやワナと同じマスに共存できない)ので、ほとんどアイテムと同じで構わない気がします。ワナ用の全マスDBをつくって各マスにあるワナ情報を保存、主人公が一歩動くたびに全マスDBを参照して、ワナがあるんだったら起動、壊れたら消去みたいな感じで。
アイテム管理を作り終えた人なら、特につまることもないのではと思います。
・キャラ管理
キャラ管理も実はアイテム管理と似たような感じですね~。
全マスDBをつくってキャラの位置情報を保存、キャラが移動するたびに情報を書き換えるだけです。
ローグの崖ではキャラの管理はマップイベントを使っていましたが(配置したらグラフィック変更・死んだら透明画像にグラフィック変更みたいな感じ)、全力でピクチャによる管理を推奨しておきます。
やってみると分かるんですが、マップイベントだと主人公と他キャラとの間に微妙な動作タイミングのズレが生じるんですよね。
他にもいろいろ不便なことが多いので、キャラ管理はピクチャによることをお勧めしておきます。
表示座標はマップチップのサイズ×マップ座標+αで、方向なんかはパターン番号や自動パターン切替を使えばどうにかなりそうですね。
いよいよローグライクの中身ですね~。
ダンジョン生成が終わったら、次にアイテムやワナやキャラをどうやって管理するか考えることにします。
・アイテム管理
まぁいろいろ方法はあるでしょうが、個人的には全マスDB+アイテム個別IDでピクチャを使った管理をお勧めします。
アイテムを置くときはマップの全マスの配置アイテムデータを保存しているDBにアイテムの個別IDを書き込み(X5Y10にアイテムID3を置くんだったら全マスDBのデータ5項目10に3を代入とか)、アイテムが拾われたり消滅したりしたら全マスDBから消去する感じですね。
それから、アイテム情報の管理はひとつのDBにまとめてしまうことを強くおすすめします。
装備も消費アイテムも、落ちているアイテムも持っているアイテムも、全部ひとつのDBにまとめておいた方が後々絶対に楽です。処理が簡単になる=バグを減らせるので。ローグの崖で痛い目にあった僕がいうので、これは間違いないです…。
手持ちアイテムの管理については、こちらもいろいろと方法があるでしょうが、個人的には手持ちアイテムのID(102、103とかの数字)をだけを保管するDBをつくって管理することをお勧めします。
もちろん床落ち状態と区別するために、アイテムのステータスとして「手持ち状態」と「床落ち状態」を区別する項目は必要になりそうですね~。
そういえば、ワールドフロンティアでは主人公専用の手持ちアイテムDBを廃止して、キャラクターのステータス内に文字列で手持ちアイテムなる項目を設けました。
こうすることで敵も主人公と同様複数のアイテムを持てるようになったりして管理が楽になることもあるので、興味のある方はそっちの方の記事もご覧いただければと思います。
・ワナ管理
長くなりましたが、ワナ管理です。
こちらは性質上アイテムと似ている(アイテムやワナと同じマスに共存できない)ので、ほとんどアイテムと同じで構わない気がします。ワナ用の全マスDBをつくって各マスにあるワナ情報を保存、主人公が一歩動くたびに全マスDBを参照して、ワナがあるんだったら起動、壊れたら消去みたいな感じで。
アイテム管理を作り終えた人なら、特につまることもないのではと思います。
・キャラ管理
キャラ管理も実はアイテム管理と似たような感じですね~。
全マスDBをつくってキャラの位置情報を保存、キャラが移動するたびに情報を書き換えるだけです。
ローグの崖ではキャラの管理はマップイベントを使っていましたが(配置したらグラフィック変更・死んだら透明画像にグラフィック変更みたいな感じ)、全力でピクチャによる管理を推奨しておきます。
やってみると分かるんですが、マップイベントだと主人公と他キャラとの間に微妙な動作タイミングのズレが生じるんですよね。
他にもいろいろ不便なことが多いので、キャラ管理はピクチャによることをお勧めしておきます。
表示座標はマップチップのサイズ×マップ座標+αで、方向なんかはパターン番号や自動パターン切替を使えばどうにかなりそうですね。
- 関連記事
スポンサーサイト