[前へ] [目次へ] [次へ]

HitTestInfoMap (ネイティブクラス)


このクラスは移動障害判定の情報を扱うクラスです。

このクラスはタイルセット上の各チップの判定情報を扱い、
タイルマップと連動して移動障害判定マップを構成するために使用されます。

●継承

   このクラスは継承をしていません。

●インターフェイスとインターフェイスメソッド

   このクラスはインターフェイスの実装宣言をしていません。

●クラスメソッド

   このクラスはクラスメソッドを持っていません。

●クラスメンバメソッド

名前概要
public設定メソッド SetMapSizeタイルセット上のタイル数を設定します
public取得メソッドconst GetMapData各タイルの障害判定情報を一括取得します
public設定メソッド SetMapData各タイルの障害判定情報を一括設定します
public取得メソッドconst GetTile指定したタイルの障害判定情報を取得します
public設定メソッド SetTile指定したタイルの障害判定情報を設定します
public設定メソッド FillTile指定したタイル範囲の障害判定情報を設定します
public操作メソッド AdjustInOutGrid指定したタイル範囲の進入/離脱判定情報を調整します

●クラス共有変数

名前概要
publicconst NORMALタイル単位で処理
publicconst DETAILオートタイルで合成された個別の情報で処理
publicconst PIXELタイルの透過度が64以上のピクセルのみ処理

●インスタンス変数

   このクラスはインスタンス変数を持っていません。


●C++レベル追加情報

クラスID: FGES_CLASSID_HITTESTINFOMAP
クラス名: FGESHitTestInfoMap



HitTestInfoMap::SetMapSize

public Bool SetMapSize( INativeInteger width, INativeInteger height, INativeInteger? mode=NULL)

   このオブジェクトが示すタイルセットに収録されるタイルサブグリッド数を設定します。
   タイルサブグリッドを使用しない場合はタイルサブグリッド数はタイル枚数と等しくなります。
   
   mode を DETAIL に設定すると、オートタイル処理で合成されているタイルについて、
   合成に使用された個別の障害判定情報を使って処理します。
   この設定を有効にすると障害判定情報の更新処理が重くなります。
   
   mode を PIXEL に設定すると、タイルの描画内容をピクセル単位で参照し、
   透過度が64以上のピクセルに対してのみ障害判定を行います。
   この設定を有効にすると障害判定情報の更新処理がかなり重くなります。

戻り値:設定に成功すると真を返します。

INativeInteger width :タイルセットの横幅(タイルサブグリッド数)。
INativeInteger height :タイルセットの縦幅(タイルサブグリッド数)。
INativeInteger? mode=NULL :タイル内の障害判定処理方法を指定します。以下のいずれか。
内容
HitTestInfoMap::NORMALタイル単位で処理します(デフォルト)
HitTestInfoMap::DETAILオートタイルで合成された個別の情報で処理します
HitTestInfoMap::PIXELタイルの透過度が64以上のピクセルのみ障害判定を行います

先頭へ


HitTestInfoMap::GetMapData

public Bool GetMapData(editable PIntArray block_map,editable PIntArray through_map)const

   このオブジェクトが示す障害判定情報を二つの配列に一括取得します。
   判定マップの座標と配列要素の対応関係は [y*width+x] となります。

戻り値:処理に成功すると真を返します。

editable PIntArray block_map :[出力]障害情報を出力する配列オブジェクト。
editable PIntArray through_map :[出力]通過情報を出力する配列オブジェクト。

先頭へ


HitTestInfoMap::SetMapData

public Bool SetMapData( PIntArray block_map, PIntArray through_map, INativeInteger? map_mag=NULL)

   障害判定情報を二つの配列から一括設定します。
   二つの配列の要素は map_mag づつ繰り返されているものとして扱います。
   二つの配列の要素数はこのオブジェクトに設定されているタイル枚数と同じでなければいけません。
   判定マップの座標と配列要素の対応関係は [y/map_mag*width+x/map_mag] となります。

戻り値:設定に成功すると真を返します。

PIntArray block_map :障害情報を格納した配列。
PIntArray through_map :通過情報を格納した配列。
INativeInteger? map_mag=NULL :情報を格納した配列の繰り返し数(1〜16)。
            空参照を指定した場合は1が指定されたものとして扱います。

先頭へ


HitTestInfoMap::GetTile

public Bool GetTile( INativeInteger x, INativeInteger y,
            editable INativeInteger block_info,editable INativeInteger through_info)const


   指定した座標の障害判定情報を取得します。

戻り値:処理に成功すると真を返します。

INativeInteger x :取得するタイルのX座標。
INativeInteger y :取得するタイルのY座標。
editable INativeInteger block_info :[出力]障害情報を出力するオブジェクト。
editable INativeInteger through_info :[出力]通過情報を出力するオブジェクト。

先頭へ


HitTestInfoMap::SetTile

public Bool SetTile( INativeInteger x, INativeInteger y,
             INativeInteger block_info, INativeInteger through_info)


   指定した座標の障害判定情報を設定します。

戻り値:処理に成功すると真を返します。

INativeInteger x :設定するタイルのX座標。
INativeInteger y :設定するタイルのY座標。
INativeInteger block_info :設定する障害情報。
INativeInteger through_info :設定する通過情報。

先頭へ


HitTestInfoMap::FillTile

public Bool FillTile( INativeInteger x, INativeInteger y,
             INativeInteger width, INativeInteger height,
             INativeInteger block_info, INativeInteger through_info)


   指定した範囲の障害判定情報を一括設定します。

戻り値:処理に成功すると真を返します。

INativeInteger x :設定するタイル範囲の左上X座標。
INativeInteger y :設定するタイル範囲の左上Y座標。
INativeInteger width :設定するタイル範囲の横幅。
INativeInteger height :設定するタイル範囲の縦幅。
INativeInteger block_info :設定する障害情報。
INativeInteger through_info :設定する通過情報。

先頭へ


HitTestInfoMap::AdjustInOutGrid

public Bool AdjustInOutGrid( INativeInteger x, INativeInteger y,
             INativeInteger? width, INativeInteger? height,
             INativeInteger? grid_width, INativeInteger? grid_height)


   指定した範囲の障害判定情報に含まれる進入/離脱判定情報を調整します。
   
   このメソッドは指定したグリッド境界にあたる部分以外の進入/離脱判定情報を削除します。
   これによりグリッド単位の処理としてより自然な判定が可能になります。

戻り値:処理に成功すると真を返します。

INativeInteger x :処理するタイル範囲の左上X座標。
INativeInteger y :処理するタイル範囲の左上Y座標。
INativeInteger? width :処理するタイル範囲の横幅。
      空参照を指定した場合は開始位置以降の全てとして扱います。
INativeInteger? height :処理するタイル範囲の縦幅。
      空参照を指定した場合は開始位置以降の全てとして扱います。
INativeInteger? grid_width :グリッドの横幅。
      空参照を指定した場合はイベントシステムのタイルサブグリッド数を指定したものとして扱います。
INativeInteger? grid_height :グリッドの縦幅。
      空参照を指定した場合はイベントシステムのタイルサブグリッド数を指定したものとして扱います。

先頭へ


HitTestInfoMap::NORMAL

public readonly Integer NORMAL

   タイル単位で障害判定を処理することを示す定数。

先頭へ


HitTestInfoMap::DETAIL

public readonly Integer DETAIL

   オートタイルで合成された個別の情報で処理することを示す定数。

先頭へ


HitTestInfoMap::PIXEL

public readonly Integer PIXEL

   タイルの透過度が64以上のピクセルのみ処理することを示す定数。

先頭へ


[前へ] [目次へ] [次へ]

最終更新 2023/09/20