今回、個人使用を目的としてクイズプログラムを作成している途中なのですが、
ある程度形になったので試しにEXEファイルを作成して実行したところ、hspが
存在しているディレクトリでは正常に動作するのですが、そこから動かしてEXE
単体で動作させようとすると内部エラー(13)が発生してしまいます。
PAKFILE機能を用いて必要なファイルを内部に詰め込めば、他のファイルは無く
ても正常に機能すると考えていたのですが、違うのでしょうか。
PAKFILEの対象としたのは以下のスクリプト内に記述されている、
./image/tf.bmp
./image/classroom.jpg
./image/screen.bmp
./image/blackboard.bmp
./image/title.bmp
./tf.txt
./start.ax
を対象としました。
#include "hsp3util.as" #define background 1 #define blackboard 22 #define monitor 21 #define fakemonitor 23 *初期設定 screen 0,640,480,0 title "おすなば" quizcount = 1 *タイトル画面 picload "./image/title.bmp" repeat stick key,0 if key&32: gosub *main wait 1 loop *main redraw 0 gosub *黒板描画 gosub *○× gosub *問題描画 redraw 1 gosub *回答待ち gosub *ボタン演出 gosub *正誤判定 wait 50 quizcount++ goto *main stop //ここから○×用ルーチン *○× choice=0 gosub *○×ボタン notesel quiz noteload "tf.txt" sdim question repeat notemax noteget question.cnt, cnt loop return *○×ボタン buffer 2,360,360 picload "./image/tf.bmp" gsel 0 gmode 4,,,255 color 0,255,0 pos 120,280 gcopy 2,0,0,180,180 pos 340,280 gcopy 2,180,0,180,180 return *○×回答取得 pos 0,0 stick key,256 if key&256{ if mousex>120 & mousex<300 & mousey>280 & mousey<460 : choice = 1 } if key&256{ if mousex>340 & mousex<520 & mousey>280 & mousey<460 : choice = 2 } return *ボタン演出 gsel 0 gmode 4,,,255 color 0,255,0 if choice = 1{ pos 120,280 : gcopy 2,0,180,180,180} if choice = 2{ pos 340,280 : gcopy 2,180,180,180,180} wait 50 return //ここまで○×専用ルーチン ; 以下汎用サブルーチン *黒板描画 //教室背景 buffer background,100,100 picload "./image/classroom.jpg" //フレーム部分 buffer blackboard,520,260 picload "./image/blackboard.bmp" gsel 0 gmode 4,,,255 color 0,255,0 pos 0,0 gcopy background,,,640,480 gmode 4,,,255 pos 60,10 gcopy blackboard,,,520,260 buffer monitor,400,200 picload "./image/screen.bmp" gsel gmode 4,,,200 pos 118,52 gcopy monitor,,,400,200 return *問題描画 a=0 randomize sdim note note = question.rnd(notemax) getstr sentence, note, a, ',' : a=a+strsize sent_length = strsize getstr answer, note, a, ',' : a=a+strsize if sent_length>30{ linelength=30 lines = (sent_length/30)+1 repeat lines linen.cnt = strmid(sentence,cnt*30,30) } loop color 0,0,0 textmode 2 color 255,0,0 pos 300,15 font "MS ゴシック" , 18 , 16 emes "第"+quizcount+"問" font "MS ゴシック" ,25, 16 color 255,255,255 pos 125,60 repeat lines emes linen.cnt loop return *回答待ち repeat onclick gosub *○×回答取得 wait 1 if choice = 1 | choice = 2 : break loop return *正誤判定 if choice = answer : title "正解" if choice ! answer : title "不正解" return stop