読者です 読者をやめる 読者になる 読者になる

flandlescarlet's diary【情報工学生の備忘録】

元機械工学科所属だった情報工学生です。JavaScriptで適当に何かを作ったり、絵を描いていたりします。

最近の活動の記録

知らない間に編集箇所のUIが変更されていて驚いた

結構システマチックになったものだ

 

現在Web言語離れてJavaHSPを勉学中アプリの起動について試行錯誤してみた所

ランチャーがある程度形を成してきたので記録を取っておく

最終的にはHSPではRPG及び3Dゲームまで発展させたいと考えている(メタセコイアで3Dモデル作るのがしんどそうだが...)

 

Sample HSP

 

title "ゲームランチャー"
screen 0,300,300,0

button "ゲーム1",*game1
button "ゲーム2",*game2
button "ゲーム3",*game3
button "終了",*theEnd
stop

*game1
chdir "C:(指定のexeファイルがある直前のディレクトリを参照)"
exec "sample1.exe" //exeファイル指定
stop

*game2
chdir "C:(指定のexeファイルがある直前のディレクトリを参照)"
exec "sample2.exe" //exeファイル指定
stop

*game3
chdir "C:(指定のexeファイルがある直前のディレクトリを参照)"
exec "sample3.exe" //exeファイル指定
stop

*thEnd
end

基本的にexecで絶対パス指定してとあるSTGゲームを起動した所一部の作品では起動せず

一部の作品では音が出ないという致命的なバグが発見された

 

原因としてexecコマンドはそのexeファイル(hspでコンパイルしたファイル)の場所が現在のプログラームソースのディレクトリ位置となっているため、他のゲームの他テキストの書き込みなどが行われる場合(ハイスコア記録のためのファイルとかログファイルとか)

を参照するので予めディレクトリをゲームの位置に指定しておく必要があることが分かった。

 

大抵のアプリやゲームは基本的にどのユーザーもディレクトリや名前を変えないことから

基本的に作り手が意図してパスを通すのも手段の一つだが、一部のユーザーのためにも

ファイルオープンのダイアログなどを駆使する、また専用のテキストファイルを作りそこにゲームのパスを書かせるなどして作るほうがランチャーとしては親切かと思われた。

 

今回はパス指定で実行までだったが、UIを意識するならばボタンではなく作りこんだ画像を配置する方がもっともらしくなります。

(これをJavaでつくろうとするととんでもないことになるHSPJavaの差があまりにも膨大すぎて...)