在离子应用程序Phaser游戏
问题描述:
我有一个相位游戏,我想在离子应用程序中实施。我的理念是从外部链接运行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);
答
编辑
当我第一次加载在浏览器的游戏它给了我一个错误在这里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/
用更多的代码编辑帖子,我有这个:'var game = new Phaser.Game(JOGO.area.width,JOGO.area.height,Phaser。 CANVAS,'游戏');' – Pedro
我得到的是您的设备像素密度可能非常高,这会导致您的游戏缩小。如果您浏览链接到它的文章可以更好地解释它。这就是为什么在我引用的代码中,它取得了window.innerWidth和height,并将其乘以devicePixelRatio。 –
我设法扩展它,但事情是,按钮也不起作用。 – Pedro