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, 3Method = *RedBoxDraw, *RandPsetPixel, *GDraw// 選択項目の文字列sdim String, 64, 3String = "赤い箱を描画する", "ランダムにドットを打つ", "グラデーションを描く"*main//SetGraphMode 640, 480, 16ChangeWindowMode TRUE // ウィンドウモードになるDxLib_Initif( stat == -1 ){ // DXライブラリ初期化処理dialog "エラー" : end // エラーが起きたら直ちに終了}// 選択ラベルの位置初期化SPoint = 0// 選択項目の数を取得&ついでに項目描画SenntakuNum = 0repeat length(String)GetColor 255, 255, 255DrawString 32, SenntakuNum * 32, String(SenntakuNum), statSenntakuNum++loop// ループrepeatProcessMessageif stat != 0 : break// 前のカーソル消去DrawBox 0, 0, 32, SenntakuNum * 32, 0, TRUE// カーソル描画GetColor 255, 255, 0DrawBox 0, SPoint * 32, 16, SPoint * 32 + 16, stat, TRUE// キー入力待ちWaitKey// キー入力に応じて処理// カーソル移動CheckHitKey KEY_INPUT_UPif ( (stat != 0) && (SPoint != 0) ) : SPoint--CheckHitKey KEY_INPUT_DOWNif ( (stat != 0) && (SPoint < SenntakuNum - 1) ) : SPoint++// 決定キー時処理CheckHitKey KEY_INPUT_Zif( stat != 0 ){// 項目に応じた処理を行うgosub Method(SPoint)// キー入力待ちWaitKey// ループから抜けるbreak}loopDxLib_End // DXライブラリ使用の終了処理endstop// 赤い箱を描画するラベル*RedBoxDrawGetColor 255, 0, 0DrawBox 0, 0, 640, 480, stat, TRUEreturn// ランダムにドットを打つラベル*RandPsetPixelrepeat 1000GetRand 639r639 = statGetRand 479r479 = statGetRand 255r = statGetRand 255g = statGetRand 255b = statGetColor r, g, bDrawPixel r639, r479, statloopreturn// グラデーションを描くラベル*GDrawrepeat 480GetColor 255, 255, 255 * cnt / 480DrawLine 0, cnt, 640, cnt + 1, statloopreturn