1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Hot Soup ProcessorAdvent Calendar 2017

Day 19

HSP3.5 HGIMG4 でイベント待ちを制御する

Last updated at Posted at 2017-12-18

event_wait の引数に -1 を指定する

HSP3.5 HGIMG4 の event_wait の引数として、待ちフレーム数を指定する代わりに -1 を指定すると、work の x成分を参照して待ちフレーム数を決定するようになります。これによって1種類のイベントを作成しておきオブジェクトごとに work の x成分を変えることで動作を変えることができます。
また event_wait に -1 を指定し、その参照先である work の x成分に -1 を指定すると無限に待つ動作となります(多分)。

work の x成分にフレーム数を指定して同じイベントで異なる時間待つサンプルコードは以下のようになります。

#include "hgimg4.as"

	gpreset
	setcls CLSMODE_SOLID, 0x000033

// イベント1種類
	newevent ev
	event_addpos ev, 0.1, 0,0
	event_wait ev, -1

	repeat 5
		gpbox id, 10, 0x00cc33
		setpos id, -20, double(2 - cnt) * 12.0, 0
		setwork id, (cnt + 1) * 120, 0, 0
		setevent id, ev
	loop

	repeat
		getreq fps, SYSREQ_FPS
		
		redraw 0
		gpdraw
		pos 16,16
		color 224,224,224
		font "",48
		mes strf("%2d [fps]", fps)
		redraw 1
		await 1000/60
	loop
実行結果1-1
z10wait1.png
5つのボックスが右へ移動
実行結果1-2
z10wait2.png
右へ移動しつづけるフレーム数が異なる

次のサンプルは無限フレーム待ちにして左クリックするごとに次の動きに続く動作です。

#include "hgimg4.as"

	gpreset
	setcls CLSMODE_SOLID, 0x000000

	newevent ev
	event_addpos ev, 0.1, 0, 0
	event_wait ev, -1

	event_setwork ev, -1, 0, 0
	event_addpos ev, 0, -0.1, 0
	event_wait ev, -1

	event_setwork ev, -1, 0, 0
	event_addpos ev, -0.1, 0, 0
	event_wait ev, -1

	event_setwork ev, -1, 0, 0
	event_addpos ev, 0, 0.1, 0
	event_wait ev, -1

	event_setwork ev, -1, 0, 0
	event_jump ev, 0


	gpbox id, 10, 0x00ccff
	setpos id, -14, 14, 0
	setwork id, -1, 0, 0
	setevent id, ev

	repeat
		getreq fps, SYSREQ_FPS

		stick key
		if key & 256 {
			setwork id, 0, 0, 0
		}
		
		redraw 0
		gpdraw
		pos 16,16
		color 224,224,224
		font "",48
		mes strf("%2d [fps]", fps)
		redraw 1
		await 1000/60
	loop
実行結果2
z10wait3.png
左クリックするごとに移動方向が変わる

このサンプルでは左クリックするごとに work の x成分 を 0 にして event_wait の待機を解除しましたが、他にもなにかの条件判定を満たしたとき(自キャラがある地点に到達した、など)にイベント動作を次へ移行するような使い方ができます。

参考

HSP3.5 hgimg4 を基礎から理解したい方は以下の記事がとてもおすすめです。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?