題名のとおりです。HSPLetなのですが、#runtime"hsplet3"を書いても"404 not found"
と出るだけで、必要なファイルが出力されません。一番下に今回書いたスクリプトを
載せておきます。どこが間違ってるか、どこかに使ってはいけないコマンドがあるか
どうかとかも解らないので全部載せます、すみません。JREはインストールしてます。
プロジェクト一式はhttp://www.boreas.dti.ne.jp/~tetsuaki/game/protrude_student.zip
ちなみに一番短いであろうスクリプト
も実行できませんでした。
#runtime"hsplet3" mes "〜"
#cmpopt optprm 0 #runtime"hsplet3" screen 0, 640, 480 ;画面サイズ title "Protrude Student" ;ぷろうとるーど すちゅーでんと ;#epack "./material/graph/alphabe.bmp" ;画像ファイル暗号化 ;#epack "./material/graph/sozai4.jpg" ;画像ファイル暗号化 ;#epack "./material/graph/player.bmp" ;画像ファイル暗号化 #define KEY_NUM 27 ;アルファベットとスペース #define INPUT_NOT 0 ;押されてない #define INPUT_ 1 ;押されてる #define INPUT_NOW 2 ;たった今押した #define ALPHABET_NUM 8 ;アルファベットの数 #define ALPHABET_STOP 0 ;止まっている #define ALPHABET_MOVE 1 ;動いている #define AV 1.0 ;角速度 #define STAND 0 ;立ちポーズ #define FIGHTING 1 ;ファイティングポーズ #define PUNCH0 2 ;パンチ0 #define PUNCH1 3 ;パンチ1 #define PUNCH2 4 ;パンチ2 #define KICK0 5 ;キック0 #define KICK1 6 ;キック1 #define RUN_ 7 ;走っている dim key, KEY_NUM : dim old_key, KEY_NUM ;キーバッファ dim alphabet, ALPHABET_NUM ; ddim al_x, ALPHABET_NUM : ddim al_y, ALPHABET_NUM ;x, y座標 ddim al_xd, ALPHABET_NUM : ddim al_yd, ALPHABET_NUM ; al_state = ALPHABET_STOP ;状態 al_angle = 0.0 ;角度 al_angle2 = 0.0 ;カウンタ角度 al_target = 0 ;今の問題 pl_state = FIGHTING ;プレイヤー状態 pl_pattern = 16 ;プレイヤーパターン pl_wait = 0 ;プレイヤーウエイト ;メインルーチン/////////////////////////////////////////////////////////////////////////////// randomize ;乱数使用 gosub *InitSystem ;システム初期化 gosub *InitAlphabet ;アルファベット初期化 repeat redraw 0 gosub *GetKey2 ;キー入力チェック2 gosub *DrawAlphabet ;アルファベット描画 gosub *MoveAlphabet ;アルファベット移動 gosub *Attack ;攻撃入力 gosub *DrawPlayer ;プレイヤー描画 gosub *AnimePlayer ;プレイヤーアニメ redraw 1 await 0 loop end ;システム初期化/////////////////////////////////////////////////////////////////////////////// *InitSystem ;キー初期化 gosub *InitKey ;グラフィックロード celload "./material/graph/alphabet.bmp", 1 ;アルファベット celdiv 1, 14, 22, 0, 0 celload "./material/graph/sozai4.jpg", 2 ;背景 celdiv 2, 640, 480, 0, 0 celload "./material/graph/player.bmp", 3 ;プレイヤー celdiv 3, 192, 144, 0, 0 ;効果音ロード mmload "./material/se/punch.wav", 0, 0 ;パンチ mmload "./material/se/kick.wav", 1, 0 ;キック return ;キー初期化/////////////////////////////////////////////////////////////////////////////////// *InitKey repeat KEY_NUM ;キーの数だけ繰り返す key(cnt) = INPUT_NOT ;押されてない old_key(cnt) = INPUT_NOT ;押されてない await 0 loop return ;キー入力チェック2//////////////////////////////////////////////////////////////////////////// *GetKey2 ;キーボードのすべてのキーの押下状態を取得 repeat KEY_NUM - 1 ;アルファベット getkey key(cnt), 65 + cnt await 0 loop getkey key(KEY_NUM - 1), 32 ;スペース repeat KEY_NUM if old_key(cnt) = INPUT_NOT & key(cnt) = INPUT_ : key(cnt) = INPUT_NOW ; //直前入力無しで、現在入力ありなら、「たった今入力した」を示すINPUT_NOWを格納 old_key(cnt) = key(cnt) //現在の入力状態を過去の入力変数に格納 await 0 loop ;押し続けは1。今押したはINPUT_NOW。押さなければ0 return ;アルファベット初期化///////////////////////////////////////////////////////////////////////// *InitAlphabet repeat ALPHABET_NUM alphabet(cnt) = rnd(26) ;出題アルファベット算出 al_x(cnt) = 96.0 * cos(-2.0 * M_PI * cnt / ALPHABET_NUM) ;座標決定 al_y(cnt) = 96.0 * sin(-2.0 * M_PI * cnt / ALPHABET_NUM) await 0 loop return ;アルファベット描画/////////////////////////////////////////////////////////////////////////// *DrawAlphabet pos 0, 0 ;背景描画 celput 2, 0 gmode 2 ;アルファベット描画 repeat ALPHABET_NUM pos int(al_x(cnt)) + 320, int(al_y(cnt)) + 240 if al_target = cnt : celput 1, alphabet(cnt) : else : celput 1, alphabet(cnt) + 26 * 2 await 0 loop return ;アルファベット移動/////////////////////////////////////////////////////////////////////////// *MoveAlphabet switch al_state case ALPHABET_MOVE ;動いている repeat ALPHABET_NUM al_xd(cnt) = al_x(cnt) * cos(deg2rad(AV)) - al_y(cnt) * sin(deg2rad(AV)) ;回転行列 al_yd(cnt) = al_x(cnt) * sin(deg2rad(AV)) + al_y(cnt) * cos(deg2rad(AV)) al_x(cnt) = al_xd(cnt) : al_y(cnt) = al_yd(cnt) await 0 loop al_angle += AV ;角度計算 if al_angle >= 360.0 : al_angle = 0.0 al_angle2 += AV ;45度で止まる if al_angle2 >=45.0 : al_angle2 = 0.0 : al_state = ALPHABET_STOP swbreak swend return ;攻撃入力///////////////////////////////////////////////////////////////////////////////////// *Attack if al_state = ALPHABET_STOP & key(alphabet(al_target)) = INPUT_NOW : gosub *Dice : al_state = ALPHABET_MOVE : alphabet(al_target) = rnd(26) : al_target++ : if al_target > 7 : al_target = 0 return ;プレイヤー描画/////////////////////////////////////////////////////////////////////////////// *DrawPlayer pos 224 + 32, 168 gmode 2 : celput 3, pl_pattern return ;攻撃発動///////////////////////////////////////////////////////////////////////////////////// *Dice if rnd(5) < 4 : pl_state =PUNCH2 : pl_pattern = 45 : else : pl_state = KICK1 : pl_pattern = 62 return ;プレイヤーアニメ///////////////////////////////////////////////////////////////////////////// *AnimePlayer switch pl_state case FIGHTING ;ファイティングポーズ pl_wait++ if pl_wait > 16: pl_wait = 0 : pl_pattern++ if pl_pattern > 31 : pl_pattern = 16 swbreak case PUNCH2 ;パンチ pl_wait++ if pl_wait > 7 : pl_wait = 0 : pl_pattern++ if pl_wait = 0 & pl_pattern = 50 : mmplay 0 if pl_pattern > 53 : pl_pattern = 16 : pl_state = FIGHTING swbreak case KICK1 ;キック pl_wait++ if pl_wait > 7 : pl_wait = 0 : pl_pattern++ if pl_wait = 0 & pl_pattern = 67 : mmplay 1 if pl_pattern > 69 : pl_pattern = 16 : pl_state = FIGHTING swbreak swend return