〜 オブジェクト 〜
objsizeでの設定サイズ取得

これから配置するオブジェクトサイズはobjsize命令で決めるので通常は考える必要のないものですが、
モジュール内部で一時的にobjsize命令を使用してサイズを変更してから元の設定サイズに戻す場合など
現在objsize命令で設定されているオブジェクトサイズを知る必要がある時もあることでしょう。
そのような時に使えるTipsです。
objsize命令で設定できるオブジェクトサイズはウィンドウ毎に決めるものであり、
ウィンドウ毎に保存する項目はBMSCR構造体という場所にまとめて格納されているので、
mref命令でBMSCR領域にアクセスして読み込んだり書き換えたりすることができます。
尚、既に配置したオブジェクトのサイズを後から取得するにはコチラをご覧ください。
追伸、getobjsizeと名付けようとしましたが、
llmod.asのユーザー定義命令と被ってしまうので、わかりにくい名ですがcntobjsizeとしました。
	

cntobjsize 格納配列
格納配列現在設定されているオブジェクトサイズを受け取る配列変数(0:X 1:Y)を指定する。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
#module
#deffunc cntobjsize val
	mref ary, 48
	mref bmscr, 67
	ary = bmscr.29, bmscr.30
	return
#global

	objsize 200, 25
	cntobjsize v
	mes "現在のobjsizeの設定サイズは(" + v + ", " + v.1 + ")です"
	stop

サイズ = cntobjsize(方向フラグ)
サイズピクセル単位の取得したサイズ受取先を指定する
方向フラグサイズの取得する方向(0:X 1:Y)を指定する

 1
 2
 3
 4
 5
 6
 7
 8
#module
#defcfunc cntobjsize int direction
	mref bmscr, 67
	return bmscr((direction ! 0) + 29)
#global

	objsize 200, 25
	mes "現在のobjsizeの設定サイズは(" + cntobjsize(0) + ", " + getobjsize(1) + ")です"