【问题标题】:Green square on game canvas using Phaser使用 Phaser 在游戏画布上显示绿色方块
【发布时间】:2021-06-09 22:08:40
【问题描述】:

谁能告诉我为什么我的 Phaser 游戏画布上有一个绿色方块,如下所示?

【问题讨论】:

    标签: phaser-framework


    【解决方案1】:

    在没有看到任何代码的情况下,我可以告诉你,当 Phaser 框架无法加载图像时,你会看到。

    在您选择的浏览器中打开开发人员工具,并在打开“网络”选项卡后刷新。您应该会看到其中一张图片的 404。

    我相信,如果您查看标准浏览器控制台,您可能还会看到有关它未能加载的资产名称的消息。

    【讨论】:

    • 好的,我认为问题可能出在这行代码上,因为我假设我需要设置飞船的起始位置: this.play = game.add.sprite(200, 245, '玩'); // 在 x = 10 和 y = 245 的位置显示飞船。在控制台中是这样说的:Phaser.Cache.getImage: Key "play" not found in Cache.
    • 这意味着您没有使用密钥 play 加载内容。您应该在预加载中添加 game.load.image('play', 'assets/play.png'); 之类的内容,就像处理您的宇宙飞船和小行星一样。
    • 感谢您 - 一个使用 Phaser 的新手,所以仍在学习中!
    • 很高兴为您提供帮助。祝Phaser好运;这是一个相当不错的框架:)
    【解决方案2】:

    我的情况略有不同。图像正在init 函数中加载,这显然不起作用。我将该函数重命名为preload,突然绿色方块消失了,图像出现了。

    【讨论】:

      【解决方案3】:

      我的情况也有些不同;似乎我的所有图像资源都已加载,但我认为我试图创建精灵有点太快了——换句话说,我试图在场景正确加载之前创建精灵并将其添加到我的场景中。

      我打算等到'scene.scene.isActive(key);'返回一个布尔值 true .....也许这可以解决我的问题。如果做不到这一点,我可能会做出某种睡眠/等待 1 秒或其他东西的承诺(不理想,但可能会起作用)

      另外注意:我能够太快地创建我的精灵的部分原因是因为我是在我自己的自定义函数中这样做的,而不是典型的 create() 函数。实际上,最好的解决方案可能是在 create() 函数中创建我的精灵,而不是自定义函数......

      【讨论】:

        猜你喜欢
        • 2023-03-07
        • 1970-01-01
        • 1970-01-01
        • 2012-05-03
        • 1970-01-01
        • 1970-01-01
        • 2022-01-27
        • 2023-03-30
        • 1970-01-01
        相关资源
        最近更新 更多