>>というか、HSPのゲーム製作は、これを使いこなすのが基本なんでしょうか^^;
かなり特殊な状況でない限り、使うことはないと思いますね(笑)
例えば4次元配列変数変数10個を用意してそれをif文を使用せずにインデックス番号だけで
参照したい場合とか。
例
#module hoge struct
;newmod を実行した際にサブルーチンジャンプを行う。
; 1 登録するmodule変数名
; 2〜 その他のステータス
#modinit int nwp1 , int nwp2 , int nwp3 , int nwp4
len = nwp1 , nwp2 , nwp3 , nwp4
dim struct , len(0) , len(1) , len(2) , len(3)
return
;四次元配列の1要素から値を代入
#modcfunc get int G_p1 , int G_p2 , int G_p3 , int G_p4
return struct(G_p1,G_p2,G_p3,G_p4)
;四次元配列の1要素に値を代入
#modfunc set int s_p1 , int s_p2 , int s_p3 , int s_p4 , int s_p5
struct(s_p1,s_p2,s_p3,s_p4) = s_p5 : return
#global
;-------------------------------------
;module型変数を定義
;変数「VM」をmodule型変数とする
newmod VM , hoge , 10,10,10,10 ; #modinitを実行 変数VM(0)を定義
newmod VM , hoge , 10,10,10,10 ; #modinitを実行 変数VM(1)にリサイズ
newmod VM , hoge , 10,10,10,10 ; #modinitを実行 変数VM(2)にリサイズ
;dim struct,10,10,10,10
;dim len,4
;上記の二つの配列変数が module変数「VM」の1要素毎に確保された状態
;-------------------------------------
;「 #modfunc 」
;「 #modcfunc 」
;で定義された命令関数はユーザーで定義した引数に加えて先頭にmodule変数名を記述する必要がある
mes "代入前"
mes strf("VM(0)の struct(9,9,9,9) = %d" , get(VM(0),9,9,9,9) ) ; VM(0)の struct(9,9,9,9)からロード
mes strf("VM(1)の struct(9,9,9,9) = %d" , get(VM(1),9,9,9,9) ) ; VM(1)の struct(9,9,9,9)からロード
mes strf("VM(2)の struct(9,9,9,9) = %d" , get(VM(2),9,9,9,9) ) ; VM(1)の struct(9,9,9,9)からロード
set VM(0) , 9,9,9,9 , 1200 ; VM(0)内の struct(9,9,9,9) に 1200を代入。
set VM(1) , 9,9,9,9 , 1201 ; VM(1)内の struct(9,9,9,9) に 1201を代入。
set VM(2) , 9,9,9,9 , 1202 ; VM(2)内の struct(9,9,9,9) に 1202を代入。
mes "代入後"
mes strf("VM(0)の struct(9,9,9,9) = %d" , get(VM(0),9,9,9,9) ) ; VM(0)の struct(9,9,9,9)からロード
mes strf("VM(1)の struct(9,9,9,9) = %d" , get(VM(1),9,9,9,9) ) ; VM(1)の struct(9,9,9,9)からロード
mes strf("VM(2)の struct(9,9,9,9) = %d" , get(VM(2),9,9,9,9) ) ; VM(1)の struct(9,9,9,9)からロード
解決後に失礼しました。