hmm.txt

Last modified by John Stroy on 2012/06/02 23:14

Notes

Source: http://www.onionsoft.net/hsp/file/hmmdll.lzh under hmmdll1.4\manual\hmm.txt
Translation: In English

Contents

基本命令

☆☆☆
	HMMINIT p1

	引数
	p1:初期化モード
	p1の第1ビットを立てるとDirectSoundを初期化します。DS系の命令を使うために必要です。
	p1の第2ビットを立てるとDirectMusicを初期化します。DM系の命令を使うために必要です。
	p1の第3ビットを立てるとDirectInputを初期化します。DI系の命令を使うために必要です。
	p1の第4ビットを立てるとDirectDrawを初期化します。DD系の命令を使うために必要です。
	p1の第5ビットを立てるとDirectGraphicsを初期化します。DG系の命令を使うために必要です。
 p1の第6ビットを立てるとDirectShowを初期化します。DSH系の命令を使うために必要です。
	戻り値(stat)
	成功:1 or HMM_OK
	失敗:0 or HMM_ERR

	機能
	このプラグインを初期化します。使用時の一番初めに呼んでください。 

	使用例)hmminit 3	;DirectSoundとDirectMusicを初期化します。

	dsinit: dminit	;上の使用例と同じことをしている。どちらを使用してもかまわないです。


☆☆☆
	HMMEND 引数なし
	
	戻り値(stat)
	必ず1が返ってくる。

	機能
	このプラグインを終了させます。HSPが終了するときに、自動的に呼び出されるので特に意識しなくてもいいです。

☆☆☆
	HMMBITON p1, p2

	引数
	p1:操作したい整数型変数名
	p2:操作したいビット番目

	戻り値(stat)
	常に1

	機能
	p1の変数のp2番目のビットを1にする。

	使用例)
	int a
	a = 0
	HMMBITON a, 2			;2ビット目を1にする
	if a == 4 : dialog "2ビット目が立ってます"
	HMMBITON a, 0
	if a == 5 : dialog "0ビット目を立てました"
	stop


☆☆☆
	HMMBITOFF p1, p2

	引数
	p1:操作したい整数型変数名
	p2:操作したいビット番目

	戻り値(stat)
	常に1

	機能
	p1の変数のp2番目のビットを0にする。


☆☆☆
	HMMBITCHECK p1, p2

	引数
	p1:調べたい整数型変数名
	p2:調べたいビット番目

	戻り値(stat)
	立っていたら1
	立っていなかったら0

	機能
	p1の変数のp2番目のビットが立っているか調べる。


☆☆☆
	HMMGETFPS p1

	引数
	p1:フレームレートを保持したい整数型変数名

	戻り値(stat)
	1が返る

	機能
	フレームレートを取得します。

☆☆☆
	HMMHITCHECK p1, p2, p3, p4, p5, p6, p7, p8, p9

	引数
	p1:当たり判定の結果を入れる変数
	p2:当たり判定を調べたい配列変数1
	p3:配列変数1の実際に検索したい番号
	p4:1つのキャラクターを構成するのに必要なパラメーターの数
	p5:当たり判定を調べたい配列変数2
	p6:1つのキャラクターを構成するのに必要なパラメーターの数
	p7:配列変数2の検索開始番号
	p8:配列変数2の検索終了番号
	p9:検索する対象のタイプ値(hspdx.dllのex_checkのp3パラメーターと同じ意味)

	戻り値
	常に1

	機能
	キャラクター同士の矩形の当たり判定処理をします。
	ここでいうキャラクターとは、最低でも表示座標と当たり判定の領域と検索タイプ値の
	データが入っている1次元または2次元配列をさします。
	1つのキャラで最低でも必要なパラメーターの内訳は
	表示座標x, y(矩形の左上)
	当たり判定の矩形の開始位置sx, sy
	当たり判定の矩形の横幅と縦幅w, h
	検索タイプ値type
	の7ぐのパラメーターが必要になります。
	配列1のキャラクターと配列2のキャラクターが当たっている場合は、p1に配列2のキャラクターの
	番号が帰ってきます。
	当たりが1つもない場合はp1に-1が帰ります。
	p9が0の時は配列2のキャラクター全てを検索します。
	※役立つかどうか微妙なので、サンプルなどを適当に見て使い方がわかる人だけ
	使ってください。

	;例)
	dim sb, 7, 16	
	/*
	自機の弾
	構成するパラメーターの数は7個で16発まで発射可能
	nはキャラクター番号
	sb.0.n は表示x座標
	sb.1.n は表示y座標
	sb.2.n は当たり判定の矩形開始位置x座標
	sb.3.n は当たり判定の矩形開始位置y座標
	sb.4.n は当たり判定の矩形の横幅
	sb.5.n は当たり判定の矩形の縦幅
	sb.6.n は検索タイプ値
	*/

	dim ene, 7*32
	/*
	敵
	構成するパラメーターは7個で32匹まで登場可能
	nはキャラクター番号
	ene.(7*n) は表示x座標
	ene.(7*n+1) は表示y座標
	ene.(7*n+2) は当たり判定の矩形開始位置x座標
	ene.(7*n+3) は当たり判定の矩形開始位置y座標
	ene.(7*n+4) は当たり判定の矩形の横幅
	ene.(7*n+5) は当たり判定の矩形の縦幅
	ene.(7*n+6) は検索タイプ値
	*/
	;自機の弾と敵との当たり判定
	repeat 16
		hmmhitcheck res, sb, 7, cnt, ene, 7, 0, 0
		if res == -1 : continue
		;ここにくるということは自機の弾が敵に当たってる。
		break
	loop

☆☆☆
	HHMMHITCHECKSETINDEX p1, p2, p3

	引数
	p1:表示x座標のパラメターが入っている要素番号
	p2:当たり判定の矩形の開始位置x座標のパラメターが入っている要素番号
	p3:検索タイプ値のパラメターが入っている要素番号

	戻り値
	常に1

	機能
	当たり判定で使うパラメーターの入っている要素番号の位置を変更

	;例)
	hmmhitchecksetindex 5, 1, 0
	dim sb, 7, 16	
	/*
	自機の弾
	構成するパラメーターの数は7個で16発まで発射可能
	nはキャラクター番号
	sb.0.n は検索タイプ値
	sb.1.n は当たり判定の矩形開始位置x座標
	sb.2.n は当たり判定の矩形開始位置y座標
	sb.3.n は当たり判定の矩形の横幅
	sb.4.n は当たり判定の矩形の縦幅
	sb.5.n は表示x座標
	sb.6.n は表示y座標
	*/