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

小ワザ

必要性

 1〜5程度ののキャラクターを動かすのは適当にやってもわりと出来てしまうのですが、100や1000と数が増えると まったく手におえなくなってしまいます。
ゲームを作る場合、弾幕や無数の敵、パーティクルなどたくさんのキャラクターが登場するので管理が大変です。
一般的にはこういったたくさんのキャラクター管理をするために配列や構造体が使われているようです。

配列変数の中身

HSPでのキャラクター管理は配列変数を使います。
キャラクター管理変数の中身はだいたいこんな感じです。

生存フラグこの配列が使用中かどうか判定するためのフラグ
X,Y座標座標
X,Y方向速度移動速度

あとは必要に応じて各キャラクターが持つパラメータを追加するといいでしょう。

このキャラクター管理変数をキャラクター10個分作るとこんな感じになります。

dim cm, 5, 10	;キャラクター管理変数
repeat 10
	cm(0, cnt) = fa		;生存フラグ
	cm(1, cnt) = px		;X座標
	cm(2, cnt) = py		;Y座標
	cm(3, cnt) = vx		;X方向速度
	cm(4, cnt) = vy		;Y方向速度
loop

登録されたキャラクターは1個1個にこれらのパラメータを保持しつづけます。

サンプル

たくさんのキャラクターを動かす

実際にこの考え方を使ってサンプルを作ってみました。

+  サンプル1

量産と消滅を管理する

配列変数の空いている領域を有効活用する方法です。
キャラクター管理用の配列変数から未使用の領域を自動でさがすのでとりあつかいがしやすいと思います。

+  サンプル2

モジュール変数を使う方法 [hsp3]

モジュール変数を利用すれば座標管理や移動管理、描画処理などをモジュールで簡単に実装できるので、スクリプトを短く読みやすくすることができます。
空いている配列変数を探す手間も要らないため、労力はかなり削減できるでしょう。

+  サンプル3

コメント

  • 配列変数の中身のdim命令dim 3,10 じゃ無くてdim5,10じゃないですか…… [a] -- 匿名希望? 2009-03-15 (日) 20:55:02

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

添付ファイル:
filemodvar.hsp
444件 [詳細]
トップ    編集凍結 差分バックアップ添付複製名前変更リロード   新規一覧単語検索最終更新   最終更新のRSS
Last-modified: 2011-03-09 (水) 16:12:27 (1005d)