HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2017
1130
hamhsp3dish.jsでのファイル保存について4解決


ham

リンク

2017/11/30(Thu) 13:38:57|NO.81929

WEBで動作するゲームなどを作ってみたくなって調べていたのですが
http://www.onionsoft.net/hsp/v35/doclib/hsp3dish_js.htm#NOTICE
こちらのガイドを見る限りbsaveなど(notesaveも?)が使えないとの事でした。
今はゲームを作ってもハイスコアなどを保存することは不可能でしょうか?



この記事に返信する


mjhd

リンク

2017/11/30(Thu) 13:59:50|NO.81930

javascript上で、FS.mkdir(“/save”)などとし、保存用のディレクトリを作成した後、
ENV.HSP_SYNC_DIR = “/save”;
と指定し、
HSP上で/save以下に保存した後、devcontrol “syncfs”を呼び出すことで、
ユーザのブラウザ上にスコアなどの情報を保存できると思います。
(IndexedDBというものです)

この方法はドキュメントには載ってないので実験的な機能かもしれません。



ham

リンク

2017/11/30(Thu) 16:53:32|NO.81931

回答ありがとうございます。
調べてみましたが2年以上も前にこのような方法が分かっていたのですね。。
ついでにHSP部屋という便利なサイトがあることも今更知りました。

hsp3dishが出来た当時からずっとbsaveが使えるようになるのを待ち続けていたのですが
3.5になっても実装されなかったので...これは助かります!

ちなみにこれはブラウザのどこに保存されるのでしょう?
エクスプローラで普通に見れる場所なんでしょうか。



mjhd

リンク

2017/12/1(Fri) 01:29:06|NO.81933

HSP3Dish.jsがIndexedDBに対応したのは以下の時点からですね:
https://github.com/zakki/openhsp/commit/79dbc4dd9647aaae062573e4fd73e48d73315d71

IndexedDBに保存したファイルは、エクスプローラではアクセスできません。
感覚としては、ブラウザのクッキーのようなものだと思います。
ブラウザでWebサイトにアクセスすると、ブラウザ上にWebサイトごとに専用の入れ物が用意されるので、そこへファイルを保存するような感覚です。

(IndexedDBはブラウザ上で動いているデータベースの一種です。
HSP3Dish.jsでは、EmscriptenのIDBFSという機能を用いて、データベース上にファイルシステムを構築しています。
例えば、Google Chromeで http://hsproom.me/program/view/?p=74 を開き、画面上でタッチをした後、
メニューから「その他ツール...」->「デベロッパーツール」を開き、「Applications」というタブを確認してみてください。
下の画像のように、保存されているファイルが確認できると思います。
https://www.fastpic.jp/images.php?file=3841635577.png )



ham

リンク

2017/12/1(Fri) 15:01:36|NO.81935

なるほど...ブラウザにIndexedDBというデータベースがあって情報を記録できるのですね。
そんなものがあったとは初めて知りました。

分かりやすく教えていただきありがとうございます。
とても勉強になりました。

頑張ってゲーム作ります!



ONION software Copyright 1997-2018(c) All rights reserved.