webGL版の SAVE、LOADについて


 今回は webGL版の最後として、SAVE、LOADができるのかどうか実験してみます。

 マニュアルには「bsave命令などファイルの静的な保存はできません」とズバリ書いてあります。

 まあローカルフォルダからデータを読み出せない仕様なら、ローカルフォルダにアクセスできないんだろう事は予想できます。

 なお、Android版での bsave、bloadはできる事を確認済みです。

 

 やってみましょう。

#include "hsp3dish.as"

	a=10
	bsave "test.dat",a

 これを HSP Dish helperで変換して、と
img00622

 とりあえず Firefoxに放り込んでみる。
img00625
 特にエラーとかはでないけど

 saveはされてないみたい
 img00626

 cドライブ(HDD)を検索してみよう
img00624

 無かった。
 
 
 う~ん、考えてみればサーバーからプログラム(html)を読むのだから、これだとサーバーにセーブデータを書くことになって、それぞれのローカルフォルダにセーブする事にはならない。

 この場合ジャバスクリプトでセーブプログラムを作る必要があるんだろうけど、HSP Dishの webGL版は中間コード(.as)を逐次実行するインタプリタ仕様だから、元の HSPで対応できなければジャバスクリプト書き足せないし、無理なのかな?
 
 
 少し調べてみたけど、ジャバの方で Cookieかウェブストレージってのを使ってやれば saveできるみたい。

 しかし HSPから javaへの値の渡し方が分からないし、たぶん中間コードに変換された HSPのプログラムソースは.dataファイルに格納されているんじゃないかと思われるし、と言う事はどのみち変換している HSPLet辺りまででウェブストレージへの命令を追加するなりしないと無理なんじゃないだろうか。

 変則的にクリップボードを仲介してデータを渡す、なんてのも考えてみたけど、情報によるとやはりセキリュティのため、web上では javaではクリップボードにもアクセスできないみたい。

 と言う訳で、HSP Dishの webGL版で、ローカルフォルダへのセーブはやっぱり無理のようでうす。
 
 
 対処法としては昔ながらのパスワード方式が考えられます。
 ドラクエの復活の呪文方式ですね。

 しかし課金の事を考えると、どうもスマートじゃない。

 後はクラウド上、つまりどこかの webサーバ上にデータを格納する方法だけど、最近のブラウザゲームにはそういうのもあるけど、恒久的なデータ保存とか考えるとどうなってるんだろう?

 この辺もその内勉強する事にしよう。
 
 
 どの道、課金要素を考えると、いずれ javaまでいじるような感じがするんですけど、とりあえず今は「棚上げ」して次へ進む事にしましょう。
 
 
 webGL版についてはとりあえず以上で、次回からはいよいよ Android版をやっていきます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です