使用移相器改变精灵的色调
Change tint on a sprite with phaser
我有一个 sprite 表示 Phaser 2.3.0 中的一个角色。
我想用另一种保持相同亮度的色调来改变这个精灵中的所有红色色调。
除了红色我不想改变其他颜色,所以色调 属性 对我没有帮助。
有没有简单的方法可以做到这一点?
不,没有 "easy" 真正做到这一点的方法。色调效果在整个图像上叠加,而不是在一个颜色通道上。
您可以将图像绘制到 BitmapData,然后使用其处理像素(或替换颜色)的能力来创建您想要的效果。但是如果你经常这样做(即有很多不同的对象,或动画精灵,或大图像,或许多不同的颜色),或者在你的代码的热点区域,那么这不是一个好主意。它使用额外的内存和更重要的处理时间,因为每个像素都被重新着色。
如果你只需要一种固定的色调,而不需要将它应用到很多 sprite 上,那么个人来说最快的方法(从渲染的角度来看)是在你的 sprite 表中使用红色色调的 sprite .使用更多内存和加载时间,但将处理时间减少到零。
完全取决于您的游戏类型,您应该自己知道哪个选项听起来最好,因为这不是 "one hat fits all" 问题。
我有一个 sprite 表示 Phaser 2.3.0 中的一个角色。
我想用另一种保持相同亮度的色调来改变这个精灵中的所有红色色调。
除了红色我不想改变其他颜色,所以色调 属性 对我没有帮助。
有没有简单的方法可以做到这一点?
不,没有 "easy" 真正做到这一点的方法。色调效果在整个图像上叠加,而不是在一个颜色通道上。
您可以将图像绘制到 BitmapData,然后使用其处理像素(或替换颜色)的能力来创建您想要的效果。但是如果你经常这样做(即有很多不同的对象,或动画精灵,或大图像,或许多不同的颜色),或者在你的代码的热点区域,那么这不是一个好主意。它使用额外的内存和更重要的处理时间,因为每个像素都被重新着色。
如果你只需要一种固定的色调,而不需要将它应用到很多 sprite 上,那么个人来说最快的方法(从渲染的角度来看)是在你的 sprite 表中使用红色色调的 sprite .使用更多内存和加载时间,但将处理时间减少到零。
完全取决于您的游戏类型,您应该自己知道哪个选项听起来最好,因为这不是 "one hat fits all" 问题。