0

onDeviceReady 内の適切な場所でゲームを実行するためのサポートが必要です。これが私のゲームが現在どのようにフォーマットされているかです。変えないとゲームがうまく動かないと思います。主に、変数のスコープを設定し、deviceready の後に設定する方法がわかりません。どうもありがとう。

var cocoon_active = typeof(Cocoon) === 'object'
var one, two, three; // ...

document.addEventListener("deviceready", onDeviceReady, false);

function onDeviceReady() {
  if (cocoon_active) {
  // ...
  }
  // FIXME CANVAS+ CODE RUNS HERE
}

window.onload = function() {
  game = new Phaser.Game(game_width, game_height, Phaser.AUTO, '');
  game.state.add("play_game", play);
  game.state.start("play_game");
}

var play = function(game){}
play.prototype = {
  preload: function() {},
  create: function() {},
  update: function() {},
  render: function() {}
} // end prototype

function a() {}

function b() {}

function c() {} // ...
4

1 に答える 1

0

ゲームがうまく動かないと思いますか、それとも実際にエラーや黒い画面が表示されますか? CocoonJS ランチャー アプリで試してみると、コンソールにエラー メッセージが表示されますか?

私のゲームでCocoonJS を起動する前にコードを追加した方法は次のとおりです。以下のコードのようなものを別のスクリプトに追加し、それをソースとしてメインの index.html に含めました。

(function (cocoonjsphaser) {

    cocoonjsphaser.utils = {
        runthisfunction: function () {
            // this code will execute when Cocoon starts
        }
    };
    // etc.
}(window.cocoonjsphaser = window.cocoonjsphaser || {}));

if (navigator.isCocoonJS) {

    // run some code at startup
    cocoonjsphaser.utils.runthisfunction();
}

そして<body>、メインの内部にフェイザーの起動コードを追加しましたindex.html

<body>
<script>
(function() {
    // initialize the framework
    var game = new Phaser.Game(640, 960, Phaser.AUTO, '');
    // add game states
    game.state.add("play_game", play);
    // game.state.add("level_select", levelselect);
    // game.state.add("main_menu", mainmenu); //etc.
    // start a state
    game.state.start("play_game");
})();
</script>
</body>
于 2016-04-30T18:34:33.797 に答える