LGP(Light Game Programming)や、ピストンコラージュ(pxtone)とかの予定。あんまネタない

LGP初心者用ミニTips

#Defineを使う(1)

プログラム内で「全く変動しない数値」などがあります。
そのため、直接入力していることが多いです。

I@KeyGet()
If I@KeyBtn(0x1C) Then
	G@Print( ch, x, y, "押したよ" )
EndIf

別にこのままでも問題なく動作します。
”ある”キーが押されたら「押したよ」と表示されるのですが、
この数値の意味を、今は分かっていても、数ヵ月後見た時には忘れているかもしれません。

//プログラム先頭で
#Define KEY_ENTER 0x1C
(中略)
I@KeyGet()
If I@KeyBtn(KEY_ENTER) Then
	G@Print( ch, x, y, "押したよ" )
EndIf

このように定義しておけば、いつ見ても何のキーか分かります。
ただし、プログラム内で使用している変数名に被らないようにしてください。
そのためか、定義名は少し長い名称にする場合が多いようです

一応・・・。LGPマニュアルを基にキー定義を作ってみました

中を見たい人はこちら
ダウンロードしたい人はこちら(中身は同じ)
これでいつでも、コピペすれば、すぐに使えます。

#Defineを使う(2)

LGPは、はじめに画面の初期化をします。そのとき、解像度や色深度を設定します。
ch = G@Setup( 640, 480, 16, 1 )
いつもすることなので、そのままでも良いのですが、
#Define DISP_WIDTH 640
#Define DISP_HEIGHT 480
#Define DISP_COLOR 16
#Define DISP_WINDOW 1

ch = G@Setup( DISP_WIDTH, DISP_HEIGHT,
		DISP_COLOR, DISP_WINDOW )
のようにすると、どれが何の意味を持っているかがわかりますし、定義部は先頭にあるので、プログラムから画面初期化部分を探さなくてすみます。
関数の引数で、はみ出てしまうので折り返してますが、この方法はLGP4でのみ可能です。

#Defineを使う(番外編)

非公式な使い方ですが、「IF〜THEN〜ELSE〜ENDIF」をC言語風にできます。
If flg == 1 Then
	G@Print( ch, 0, 0, "フラグONです" )
Else
	G@Print( ch, 0, 0, "フラグOFFです" )
EndIf
#Define { Then
#Define } EndIf
#Define }else{ Else

if( flg ){
	G@Print( ch, 0, 0, "フラグONです" );
}else{
	G@Print( ch, 0, 0, "フラグOFFです" );
}
ほらほら!C言語みたいでしょう?(強引^^;)
<戻る