おまけの話

投稿者:Material 315238 1 mini shainy 投稿日:2021/02/13 09:26

おまけ

ここからの内容はちょっとした裏技的なものなので、いい方法とは言えません。

今までに公開されているCoRのゲームは基本的にスマホの操作に対応していませんが、
それを無理やり対応させる方法です。これによって一部のゲームは動作するはずです(全部ではない)

ブラウザのURLアドレス入力欄に javascript:(以降にコード) と入力すると開いているWebページでJavaScriptを実行できます。
(スマホの機種やブラウザアプリによってはうまくいかないかも)
JavaScriptが何なのかはここでは詳しく言いませんが、CoRの動作に絡んでいるものです(世の中の大体のWebページにも)

これを用いて、スマホでの操作も反映されるように補助します

Array.from(document.getElementsByTagName("iframe")).some(iframe => {
  if (!/https:\/\/rmake.jp\/games\/[0-9]+\/core_player.*/.test(iframe.src)) return false;
  const func2 = e => {
    const touch = e.changedTouches[0];
    const bounds = touch.target.getBoundingClientRect();
    const x = touch.clientX - bounds.left;
    const y = touch.clientY - bounds.top;
    iframe.contentWindow.rmakeGame.input.mousePointer.x = x;
    iframe.contentWindow.rmakeGame.input.mousePointer.y = y;
    iframe.contentWindow.rmakeGame.input.mousePointer.isDown = true;
    iframe.contentWindow.rmakeGame.input.mousePointer.isUp = false;
  };
  const func = canvas => {
    canvas.addEventListener("touchstart", func2);
    canvas.addEventListener("touchmove", func2);
    canvas.addEventListener("touchend", function (e) {
      const touch = e.changedTouches[0];
      const bounds = touch.target.getBoundingClientRect();
      const x = touch.clientX - bounds.left;
      const y = touch.clientY - bounds.top;
      iframe.contentWindow.rmakeGame.input.mousePointer.x = x;
      iframe.contentWindow.rmakeGame.input.mousePointer.y = y;
      iframe.contentWindow.rmakeGame.input.mousePointer.isDown = false;
      iframe.contentWindow.rmakeGame.input.mousePointer.isUp = true;
    });
  };
  const canvas = iframe.contentDocument.querySelector("#cor_player canvas");
  if (!canvas) {
    iframe.addEventListener("load", e => {
      const canvas = iframe.contentDocument.querySelector("#cor_player canvas");
      if (canvas) {
        func(canvas);
      }
    });
    return true
  }
  func(canvas);
  return true;
});


スマホのブラウザでCoRのゲームを開いた状態でアドレスバーに
javascript:
続けて上記のコードをコピペ
javascript:Array.from...
と入力して、検索されずにそのページにとどまれば完了

これでpointer.down?メソッドがスマホでも正常に動作するようになりますが、
スプライトのtap_down?メソッドは動作しないため、ゲームによってはこの方法でもスマホで遊ぶことはできません。



まあどうしてもスマホで遊びたいなら、マウスをスマホに接続すればいいだけの話ですが

コメントする

コメントするには、ログインする必要があります。

コメント一覧

コメントはありません。