2017-04-22 128 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