Javascript Phaser3仅在全屏模式下具有不同的缩放行为
我正在使用phaser3,我希望实现以下行为:Javascript Phaser3仅在全屏模式下具有不同的缩放行为,javascript,html,css,phaser-framework,Javascript,Html,Css,Phaser Framework,我正在使用phaser3,我希望实现以下行为: 当游戏不是全屏时,画布不会调整大小,而是水平居中,与页面上的其他html元素配合良好 当游戏全屏显示时,画布应缩放至最适合当前屏幕分辨率。它也应该居中,任何黑色区域都应该在边缘 我可以实现这两个目标,但不能同时实现 我可以使用html/css技巧或水平使用Phaser.Scale.center_(或同时使用Phaser.Scale.center_)将画布居中。但如果我只是这样做,那么它就不会在全屏上缩放 如果我使用Phaser.Scale.FI
- 当游戏不是全屏时,画布不会调整大小,而是水平居中,与页面上的其他html元素配合良好
- 当游戏全屏显示时,画布应缩放至最适合当前屏幕分辨率。它也应该居中,任何黑色区域都应该在边缘
在这种情况下,Phaser有两个事件可以派上用场:
Phaser.Scale.Events.ENTER_FULLSCREEN;
Phaser.Scale.Events.LEAVE_FULLSCREEN;
您可以收听这些活动并“做一些事情”,当然,请根据您的实际需要调整您的代码
const game = new Phaser.Game(config);
game.scale.on(Phaser.Scale.Events.LEAVE_FULLSCREEN, () => {
game.scale.scaleMode = Phaser.Scale.NONE;
game.scale.autoCenter = Phaser.Scale.CENTER_HORIZONTALLY;
});
game.scale.on(Phaser.Scale.Events.ENTER_FULLSCREEN, () => {
game.scale.scaleMode = Phaser.Scale.FIT;
game.scale.autoCenter = Phaser.Scale.CENTER_BOTH;
});
一些参考资料:
Phaser.Scale.Events.ENTER_FULLSCREEN;
Phaser.Scale.Events.LEAVE_FULLSCREEN;
const game = new Phaser.Game(config);
game.scale.on(Phaser.Scale.Events.LEAVE_FULLSCREEN, () => {
game.scale.scaleMode = Phaser.Scale.NONE;
game.scale.autoCenter = Phaser.Scale.CENTER_HORIZONTALLY;
});
game.scale.on(Phaser.Scale.Events.ENTER_FULLSCREEN, () => {
game.scale.scaleMode = Phaser.Scale.FIT;
game.scale.autoCenter = Phaser.Scale.CENTER_BOTH;
});