Edited at

HSP3.5 HGIMG4 でヘルプに書かれてないイベント動作紹介

More than 1 year has passed since last update.

小ネタですが、HSP3.5 のヘルプには登場しないイベント動作がいくつかあります。


event_setwork2 が存在する

event_setwork2 によって work2 値が変更できます。

work と同じく event_work2, event_addwork2 も存在し、work と同様の仕様です。


event_prmadd が存在する

event_prmadd が存在します。

追加引数で最小と最大で範囲を制限することができます。


event_uv が存在する

event_uv が存在します。

現状では PRMSET_SPRCELID にセットするのと同様の効果があるようですが、HGIMG3 にはすでに event_uv があり意図は同じですが、UVの指定方法が異なっています。


まとめてサンプル

サンプルコードは以下のようになります。

#include "hgimg4.as"

#const WID_DOT 2

sx = ginfo(26)
sy = ginfo(27)

gpreset
setcls CLSMODE_SOLID, 0x000033

celload dirinfo(5) + "\\tamadot.png", WID_DOT
celdiv WID_DOT, 64,64, 32,32

dim evs,3

newevent ev
event_setwork2 ev, 1,2,3
evs.0 = ev

newevent ev
event_uv ev, 28
event_wait ev, 10
event_uv ev, 29
event_wait ev, 10
event_uv ev, 30
event_wait ev, 10
event_uv ev, 31
event_wait ev, 10
event_jump ev, 0
evs.1 = ev

newevent ev
event_wait ev, 120
event_prmadd ev, PRMSET_SPRCELID, 1, 44,44+3
event_jump ev, 0
evs.2 = ev

dim ids,3
//
gpspr id, WID_DOT, 39, 2
setscale id, 2,2,2
setpos id, sx/2 - 128, sy/2
setevent id, evs.0
ids.0 = id
//
gpspr id, WID_DOT, 24, 2
setscale id, 2,2,2
setpos id, sx/2, sy/2
setevent id, evs.1
ids.1 = id
//
gpspr id, WID_DOT, 44, 2
setscale id, 2,2,2
setpos id, sx/2 + 128, sy/2
setevent id, evs.2
ids.2 = id

ddim v,3

repeat
getreq fps, SYSREQ_FPS
redraw 0
gpdraw

font "",48
pos 16,16
color 224,224,224
mes strf("%2d [fps]", fps)

getwork2 ids.0, v.0, v.1, v.2
fv2str v
mes "work2: " + refstr

redraw 1
await 1000/60
loop

実行結果1

z08ex1.png

work2 がセットできる

実行結果2

z08ex2.png

右端のアニメーションは上限IDに対応する盾で止まる

以上、小ネタでした。


参考

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