hinekure.net が http://hspdev-wiki.net/ から自動クローリングした結果を表示しています。画像やリソースなどのリンクが切れています。予めご了承ください。
移動判定 - HSP開発wiki
トップ    編集凍結 差分バックアップ添付複製名前変更リロード   新規一覧単語検索最終更新   最終更新のRSS
[hsp3]

「スーパーロボット大戦」や「ファイアーエンブレム」のようなシミュレーションRPGに使う、移動可能地点の判定方法について。

移動判定

ユニット(キャラクター)の持つ移動力と地形の持つ移動コストから移動可能な地点を判定します。

移動力
ユニットの移動できる最大マス数のこと。ユニットごとに定義。森や山などの地形を通過する場合は、この値より小さいマス数しか移動しないことがある。
移動コスト
地形を通過する際に必要な移動力。地形ごとに定義。

どこまで移動できるのかを調べるには、実際に移動してみるのが1番です。
ここでは、ユニットの代わりに動いて調べてくれるロボットのようなものを考えましょう。
ロボットにはユニットの移動力(移動できるマス数)を与え、ユニットの現在地に設置します。

設置されたロボットは以下の行動表に従って行動します。

  1. 自分のいるマスにを立てる
  2. もし移動力が残っているならば周囲4マスを調べる(下記i〜ivを実行)
    1. 上にあるマスが移動可能なら移動力を移動先のマスのコスト分だけ減らして進む → 1へジャンプ(gosubのイメージ)
    2. 右にあるマスが移動可能なら移動力を移動先のマスのコスト分だけ減らして進む → 1へジャンプ
    3. 下にあるマスが移動可能なら移動力を移動先のマスのコスト分だけ減らして進む → 1へジャンプ
    4. 左にあるマスが移動可能なら移動力を移動先のマスのコスト分だけ減らして進む → 1へジャンプ
  3. 移動力を今いるマスのコスト分だけ回復させ、もと来た道を戻る → ジャンプ元へ戻る(returnのイメージ)

ロボットは1度立ち寄ったマスに必ずを立てます。
この旗がある所がユニットが移動できる場所となるワケです。
また、旗にはそのマスに到達した時の移動力を記しておきます。
こうしておけば同じ場所を何度も調べずに済むからです(後述)。

そして旗を立てた後、自分の周囲4マスが移動可能であるかどうかを調べます。ここで言う移動可能とは

  1. 移動力が足りる、つまり(現在の移動力 - 移動先のマスのコスト)が0以上であること
  2. マップ外ではないこと
  3. (現在の移動力 - 移動先のマスのコスト)以上の旗が立っていないこと

ことを意味します。
移動力が足りなければ移動できないし、マップ外ならそもそも移動なんてできるわけはないですよね。
3つめの条件の意味は、もし移動先のマスに今以上の移動力で訪れた事があるならば、そのマスに移動する必要がないためです。
ここで旗に移動力を書いたのが活きてきます。[eller]

スクリプト

あまり整形できていないので読み辛いと思いますが…。[eller]

+  ソースコード

マップデータには"11121121131"のような文字列を指定します。この文字(0〜9)がその地点に移動するために必要な移動力(コスト)を表します(例えば草原は1、森は2など)。通常0は使わないはずですので、0には通行不可などの意味を持たせても良いでしょう。

このモジュールではローカル変数を使っていますが、FILO記憶法を使うことでも実現可能です。FILO記憶法についてはS.Programs NETさんの小さなねたなどをご覧ください。


  • HSPWikiから来ました&初めて投稿しました。個人のサイトに散らばっているよりは使いやすいですし、こういうサイトがあると便利ですね! -- eller 2006-01-01 (日) 15:49:38
  • 移動力=コスト、ですね。ellerさんのサイトは「キャンドルノート」さんかな?^^ -- kz3 2006-01-19 (木) 17:39:15
  • >kz3さん はじめまして。サイトはそれです、よくご存知ですね^^。このページにもう少し追記したいのですが、なかなか時間が作れません。ごめんなさい。気長に待ってやってください。 -- eller 2006-02-02 (木) 11:01:04
  • Hello, my name is Alex, i'm a newbie here. I really do like your resource and really interested in things you discuss here, also would like to enter your community, hope it is possible:-) Cya around, best regards, Alex! -- Alexsdhwc? 2007-02-12 (月) 11:12:25

URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White

添付ファイル:
fileSRPGSerch2.hsp
492件 [詳細]
fileSRPGSerch.hsp
288件 [詳細]
トップ    編集凍結 差分バックアップ添付複製名前変更リロード   新規一覧単語検索最終更新   最終更新のRSS
Last-modified: 2013-03-07 (木) 10:03:04 (276d)