J-GAME-スクリプトの話
window.openが機能しない
iosのsafariの仕様で
ユーザーの操作でない限りwindow.openは機能しません、スクリプトのみでリンク先などを開こうとした場合は機能しません。
対策はスクリプトだけで開こうとせずにユーザーに操作してもらってリンク先などを開くようにしましょう。
CSS等でボタンを表示してボタンクリックでリンクが開くや画像クリックで開く等です。Javascriptのみでタブを開いたり、リンクを表示したりするのは控えましょう。JavascriptでMTMLのボタンを表示させるスクリプトもありますので、そちらを利用してボタンなどを表示するようにしましょう。スクリプトのキーワードはdocument.createElementです。このスクリプトはその名の通り、MTMLにドキュメント(タグ)を作ります、これでボタンを作って表示して、別の操作でコレを消す!コレでゲーム内にリンク先などを作っていきましょう。
プリロードについて
スマホや処理の遅い媒体でのプレイ時にBGMが遅れる場合がありましたので
BGMのプリロードを実装しました。
技術的な話になりますとジャバスクリプトでのお話で
bgmBuffer._buffer コレの使用します
コレの値を確認するif文作成し、NULL状態でから切り替わるまで
ウェイト処理&ループ処理をします
等ゲームはツクールMVをベースにしていますので
MV[のコモンイベントで作成する場合は
ウェイト処理&ループ処理をします
例といたしまして
コモンイベントでBGMを音量0にて再生、ループ処理の中に"!!AudioManager._bgmBuffer._buffer"で条件分岐でループの中断を記載、その後、BGMをフェードアウトして通常の音量でBGMを再生するとズレがなくいきそうです。フェードアウトにしているのはMVの性質上BGMを停止や他のBGMを再生してしまうと、保管しているBGMデータをリセットしてしまう為、フェードアウトがよいです。
この処理を起こす前にプリロード中を示す画像を表示しておけば
プリロードの完成です。
このプリロードを行っておかないと場面の切り替わり及び必要な時にスペックが劣る場合BGMが遅れてしまうので必要な処理になります。
ウェブアプリの利点追加
私はウェブアプリでのゲーム作成をメインとしています。内部がHTMLとJavascript&CSSで構成している為、ホームページ作りにも活用できます。さらにネット公開したいときはそのファイルごとサーバーに上げてしまえば、即時公開可能な点と常にユーザーが遊べるゲームが最新状態を維持できます、アップデートもし放題ですwその他の利点としましては、アプリストアにもそのまま出店できます(少し意味合いが違うかも)androidなどのアプリ開発はJAVAをしようしますが、この内部にウェブビューという機能がありますソレを利用して、アプリの内部にウェブサイトを表示させます、これによりJavascriptで作成したゲームをサーバーにアップし、ソレをアプリのウェブビューで表示したら最新の状態でのゲーム公開が常に行うことが出来ます。ただし、グーグルプレイはウェブビューで大丈夫なようですがアップルストアの場合は単なるウェブビューだけのアプリの場合は、はじかれてしまいます、IOSアプリとしても出したい場合は作成する段階から、ウェブビューとオフライン部分を作成していく形がいいと思います、これをガワネイティブアプリと言っています。現在は大体のアプリが、ガワネイティブで作成していると思いますアップデートもユーザーワザワザもう一度ストアから最新バージョンをインストールしてもらう必要もなくなります。
Progressive Web Appsとは
ざっくり言うとホームページや、ウェブアプリを
ネイティブアプリのようにダウンロードしてスマホなど
ホーム画面に追加して、ページの表示速度を上昇させて
かつ、ホームページなどのデザインをネイティブのようにします
アドレスバーを消して表示することが出来
ページ表示時にsplashをっ挟むことが可能です
私的にはPWAのメインはホーム画面に追加機能ですが
その他にも、これを使用することにより
インストールした人にプッシュ通知を送ることが可能になります
現在【2020/08】ではandroidではグーグルクロームが対応しており、iosではsafariが対応しています
確認したところリンクをラインなどで送った場合は、ラインブラウザでは反応しません
その場合ラインでリンクを送るときに規定のブラウザで開くように指定してlineで送ると便利です
lineの設定で既定のブラウザで開くように自身で設定も可能ですが正直皆がこの設定をしているとは思えません。
そのままリンクを開く人がほとんどだと思います。
URLをラインで送るときに外部ブラウザで起動するように指定して送ることが可能です。
?openExternalBrowser=1
これをリンクURLの最後に足すことで外部ブラウザで開くようにできます。
話が戻りまして
PWAの導入方法ですが手順は大きく分けて3つでできます!
①indexと同じ改装にmanifest.jsonを作成②
Service Workerを同じ階層に設置!
③それらを読み込み実装できるようにHTMLに記載する
①のmanifestの中身は

{ "name": "アプリ名",
"short_name": "表示される名前",
"icons": [{ "src": "アイコンの指定サイズ192",
"sizes":"192x192", "type": "image/png" }, { "src": "icon/icon512.png(アイコンの指定サイズ512)", "sizes":"512x512",
"type": "image/png" }], "start_url": "メインとなるURL", "display":
"standalone", "background_color": "#FFFFFF", "theme_color": "#FFFFFF" }

基本的には赤字の場所を変えれば大丈夫です
その他の場所についての詳細は省きます
背景を変えたりとかいろいろできますので調べて変えてみるのもいいかもです。
②のService Workerの設置は
Javascriptで作成します、中身は

self.addEventListener('fetch', function(e) {
})

この記載だけで大丈夫です
③のHTMLでの記載はhead内に




このタグを埋め込みます
これで設置は完了となります
簡単に確認する方法はPCでへーじにアクセスして、(グーグルクロームで)上部URLお気に入りに登録の★マークの横に+のアイコンが表示されていたら設置は成功しています。
これでうまくいかない場合は
ページ内の検証で確認してみてください
PWAはHTTPSでしか動かないので、HTTPSとしてページがちゃんと機能しているかをまずは確認してみてください。
以下はツクールについてのメモ書きです
イベントコマンドでのMAPの指定座標の位置にある
対象イベントを取得するときに
対象が重なっていた場合よりイベント番号が若い方が優先的に取得されます…
後から設定したイベントじゃないのね…
inserted by FC2 system