2017-04-22 124 views
0

我有一個相位遊戲,我想在離子應用程序中實施。我的理念是從外部鏈接運行phaser遊戲,並在離線應用程序內創建一個按鈕,鏈接到遊戲並從InAppBrowser或Cordova web視圖中啓動,如here所述。在離子應用程序Phaser遊戲

我在移動瀏覽器(chrome)中運行移相器遊戲時沒有問題,但是當它通過InAppBrowser或Cordova web視圖從應用程序啓動時,遊戲很小。

此外,我無法點擊按鈕。

任何意識到問題可能是什麼?在相位遊戲中,或在應用程序中...

它在瀏覽器中運行良好。

鏈接到遊戲:works on firefox and on mobile

(function() { 
    var game = new Phaser.Game(JOGO.area.width, JOGO.area.height, Phaser.CANVAS, 'game');  

      // -- gamestates 
      game.state.add('loading', JOGO.loading); 
      game.state.add('preload', JOGO.preload); 
      game.state.add('menu', JOGO.menu); 
      game.state.add('levelSelect', JOGO.levelSelect); 
      game.state.add('jogo', JOGO.jogo); 
      game.state.add('fim', JOGO.fim); 

      game.state.start('loading'); 
})(); 

播放按鈕:

var jogar = this.game.add.button(this.game.width/2, this.game.height - this.game.height/4, "jogar"); 
     jogar.anchor.set(0.5); 
     menuGroup.add(jogar); 
     jogar.state = "levelSelect"; 
     jogar.events.onInputDown.add(this.onSpriteDown, this); 
     jogar.events.onInputOver.add(this.onSpriteOver, this); 

enter image description here

回答

1

編輯

當我第一次加載在瀏覽器的遊戲它給了我一個錯誤在這裏menu.js :

onSpriteOver : function (sprite, pointer) { 
    JOGO.somButton.play(); //Error on this line!!!!! 
    var xpos = sprite.x; 
    if(!animate) 
    var tween = this.game.add.tween(sprite) 
      .to({ x: xpos + 6 }, 100, Phaser.Easing.Linear.None) 
      .to({ x: xpos - 5 }, 100, Phaser.Easing.Linear.None) 
      .to({ x: xpos + 4 }, 100, Phaser.Easing.Linear.None) 
      .to({ x: xpos - 3 }, 100, Phaser.Easing.Linear.None) 
      .to({ x: xpos }, 100, Phaser.Easing.Linear.None) 
      .start(); 
}, 

我認爲somButton是未定義的。我重新加載並在瀏覽器和手機上正常工作。它並不總是給出錯誤。它只在瀏覽器和手機上首次加載時出錯。

原始

貴移相器的遊戲有固定的寬度和高度或它填補像這樣的視口:

game = new Phaser.Game(window.innerWidth * window.devicePixelRatio, window.innerHeight * window.devicePixelRatio, Phaser.CANVAS, 'gameArea'); 

這是從這裏取:

https://www.joshmorony.com/how-to-scale-a-game-for-all-device-sizes-in-phaser/

+0

用更多的代碼編輯帖子,我有這個:'var game = new Phaser.Game(JOGO.area.width,JOGO.area.height,Phaser。 CANVAS,'遊戲');' – Pedro

+0

我得到的是您的設備像素密度可能非常高,這會導致您的遊戲縮小。如果您瀏覽鏈接到它的文章可以更好地解釋它。這就是爲什麼在我引用的代碼中,它取得了window.innerWidth和height,並將其乘以devicePixelRatio。 –

+0

我設法擴展它,但事情是,按鈕也不起作用。 – Pedro