【问题标题】:Filter/Shader only works after reload. Phaser过滤器/着色器仅在重新加载后有效。移相器
【发布时间】:2016-05-31 19:41:37
【问题描述】:

我想在我的 html5 项目中使用 this 过滤器/着色器。

问题出在 Safari 和 Firefox(Chrome 对我有用)上,过滤器/着色器仅在我重新加载页面一次后才能工作。示例页面也有同样的问题。我尝试首先使用 jQuery.get() 加载 .frag 文件以首先将文件放入缓存中,但也没有成功。

有人知道为什么会这样吗?

编辑: 为了更好地理解:

如果您第一次访问该页面,Shader 不会在 Firefox 和 Safari 中呈现(.frag 文件不在缓存中)。只有空白(画布的默认黑色/背景颜色)画布可见

【问题讨论】:

  • 提供您拥有的代码应该可以帮助其他人更快地帮助您。
  • 示例页面上是代码
  • 除非不是;我在示例代码中没有看到任何 jQuery 的使用。
  • 我使用 jQuery.get 只是尝试修复错误。我使用与示例相同的代码,并且如上所述,当缓存中没有 .frag 文件时,Safari 和 Firefox 的示例页面上也会发生错误。或者在刷新缓存之后。

标签: javascript shader loading phaser-framework


【解决方案1】:

据我了解,您需要平滑的状态更改。

每个状态,您都可以使用适合您游戏屏幕的简单黑色图像在几秒钟内淡出。

您应该在创建函数的末尾添加以下脚本。 像这样,

    create: function(){
    //your create codes here

    blackScreen = game.add.sprite(0, 0, 'blackScreen');
            game.add.tween(blackScreen).to({
                alpha: 0
            }, 500, Phaser.Easing.Linear.None, true);

    }

这将帮助您处理流畅的打开/更改游戏屏幕。

【讨论】:

  • 感谢您的回答,但这不是问题...问题是当您作为用户第一次打开页面时,缓存中没有任何资产也意味着着色器文件。着色器没有加载,它只显示空的画布
  • 有兴趣再看看吗?
猜你喜欢
  • 2011-10-28
  • 2022-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多