我有一个多游戏项目。我有一个menu.js
和很多游戏js页面。
在menu.js
加载页面中,视图正确无误。加载game.js
并在menu.js
中返回后,屏幕就不一样了。我尝试了很多解决方案,但没有任何工作。我想在开始时表现出相同的外观。
Menu.js
之前
加载Menu.js
后
menu.js的一部分
var menuState = {
create: function(){
game.scale.scaleMode = Phaser.ScaleManager.SHOW_ALL;
game.scale.setGameSize(1000, 600);
game.scale.minWidth = 300;
game.scale.minHeight = 180;
game.scale.maxWidth = 1000;
game.scale.maxHeight = 600;
game.scale.pageAlignHorizontally = true;
game.scale.pageAlignVertically = true;
game.scale.updateLayout(true);
game.state.start("game");
},
start: function(){
}
}
game.js的一部分
this.map = game.add.tilemap('level2');
this.map.addTilesetImage('secondMap');
this.map.setCollisionByExclusion([13, 14, 15, 16, 46, 47, 48, 49, 50, 51]);
this.map.setTileIndexCallback(225, this.test3, this);
this.map.setTileIndexCallback(228, this.test, this);
this.map.setTileIndexCallback(231, this.test2, this);
this.layer = this.map.createLayer('Tile Layer 1');
this.layer.resizeWorld();
如果我删除this.layer.resizeWorld();
并返回主页,则外观正确无误,我认为它map
会导致返回错误。
我试过了:
this.layer.destroy();
this.map.destroy();
game.world.removeAll()
game.state.clearCurrentState();
但总是一样的结果。
如果我使用:
game.state.destroy();
game.destroy();
删除全部。
我不知道问题出在哪里。
答案 0 :(得分:1)
我也遇到了类似的问题,但是我在Google找到了一个解决方案(在我的情况下),并且会严重重新定义世界的极限:
localtime_s
答案 1 :(得分:0)
我找到了解决方案。返回主菜单后,有必要重新定义世界width
和height
。您还需要为要加载的所有游戏定义世界width
和height
。
就我而言:
var menuState = {
create: function(){
game.scale.scaleMode = Phaser.ScaleManager.SHOW_ALL;
game.scale.setGameSize(1000, 600);
game.scale.minWidth = 300;
game.scale.minHeight = 180;
game.scale.maxWidth = 1000;
game.scale.maxHeight = 600;
game.scale.pageAlignHorizontally = true;
game.scale.pageAlignVertically = true;
//------------------------
game.world.width = 1000;
game.world.height = 600;
//------------------------
game.scale.updateLayout(true);
game.state.start("game");
},
start: function(){
}
}