phaser-framework - Phaser.io 3 : Get game size in scene

标签 phaser-framework

这似乎是一个简单的问题,但我无法解决它:

我正在使用带有 ES6 类的 Phaser.io 3 HTML5 游戏框架,我试图找出实际的“游戏大小”(或 Canvas /视口(viewport)大小),以便我可以在屏幕上居中放置一个对象:

class Scene1 extends Phaser.Scene {
    constructor(config) {
        super(config);
    }

    preload() {
        this.load.image('ship', 'assets/spaceship3.png');
    }

    create() {

        let ship = this.add.sprite(160,125, 'ship');
        // Here I need to figure out the screen width / height:
        // ---> How do I achieve that?
        ship.setPosition(width / 2, height / 2);
    }
}

我找不到读取或计算实际视口(viewport)/ Canvas 大小的方法。有什么提示吗?

最佳答案

在一个场景中,在 preload()create()方法(不在构造函数中),您可以使用 this.sys.game.canvas 访问 Canvas 元素.因此,要获得 Canvas 大小,您可以执行以下操作:

create() {
    let { width, height } = this.sys.game.canvas;
}

就我而言,我喜欢添加以下代码以简化对 Canvas 的访问:

preload() {
    this.canvas = this.sys.game.canvas;
}

关于phaser-framework - Phaser.io 3 : Get game size in scene,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52139569/

相关文章:

javascript - 图像未显示在移相器 3 中

javascript - 移相器 - 错误 : Cannot read property 'on' of null

html - 我如何在 Phaser (HTML) 中制作和更新文本

javascript - 如何设置与世界边界的碰撞器(Phaser)?

vue.js - 如何使用 Phaser 3 和 Webpack 正确加载图像和 spritesheet?

javascript - 切换场景时黑屏 Phaser 3

phaser-framework - Phaser 3 中的 setInteractive 函数存在问题

javascript - 如何在我的 typescript 生成的 js 中调用函数

javascript - 如何使用phaser框架在html5中实现设备定向

javascript - 使用 localStorage 存储对象