【HSP3】DXライブラリをHSPで使ってみるサンプル(7.メニュー処理基本)

http://homepage2.nifty.com/natupaji/DxLib/dxprogram.html#N7 のHSP版です。DxLib.as は http://tkooler.moe.hm/hsp/img/DxLib.as から入手可能です。今回からウィンドウモードに変更になってます。またC言語版は関数ポインタを使用してますが、HSPで使用してもうれしくないので代わりにラベル型配列変数を使用しています。

http://homepage2.nifty.com/natupaji/DxLib/dxprogram.html#N7 のHSP版です。DxLib.as は http://tkooler.moe.hm/hsp/img/DxLib.as から入手可能です。今回からウィンドウモードに変更になってます。またC言語版は関数ポインタを使用してますが、HSPで使用してもうれしくないので代わりにラベル型配列変数を使用しています。

#runtime "hsp3cl"
#include "DxLib.as"
//
ldim Method, 3
Method = *RedBoxDraw, *RandPsetPixel, *GDraw
//
sdim String, 64, 3
String = "", "", ""
*main
//SetGraphMode 640, 480, 16
ChangeWindowMode TRUE //
DxLib_Init
if( stat == -1 ){ //
dialog "" : end //
}
//
SPoint = 0
//
SenntakuNum = 0
repeat length(String)
GetColor 255, 255, 255
DrawString 32, SenntakuNum * 32, String(SenntakuNum), stat
SenntakuNum++
loop
//
repeat
ProcessMessage
if stat != 0 : break
//
DrawBox 0, 0, 32, SenntakuNum * 32, 0, TRUE
//
GetColor 255, 255, 0
DrawBox 0, SPoint * 32, 16, SPoint * 32 + 16, stat, TRUE
//
WaitKey
//
//
CheckHitKey KEY_INPUT_UP
if ( (stat != 0) && (SPoint != 0) ) : SPoint--
CheckHitKey KEY_INPUT_DOWN
if ( (stat != 0) && (SPoint < SenntakuNum - 1) ) : SPoint++
//
CheckHitKey KEY_INPUT_Z
if( stat != 0 ){
//
gosub Method(SPoint)
//
WaitKey
//
break
}
loop
DxLib_End // 使
end
stop
//
*RedBoxDraw
GetColor 255, 0, 0
DrawBox 0, 0, 640, 480, stat, TRUE
return
//
*RandPsetPixel
repeat 1000
GetRand 639
r639 = stat
GetRand 479
r479 = stat
GetRand 255
r = stat
GetRand 255
g = stat
GetRand 255
b = stat
GetColor r, g, b
DrawPixel r639, r479, stat
loop
return
//
*GDraw
repeat 480
GetColor 255, 255, 255 * cnt / 480
DrawLine 0, cnt, 640, cnt + 1, stat
loop
return
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX