我正在尝试在 cocos2d 中绘制一个(2d)精灵,显示一个瓶子。瓶子应该能够具有动态水位(即瓶子中的水量可以在精灵的生命周期内改变)。
我想知道如何做到这一点。我目前有一个空瓶子的PNG文件。我调整了该 PNG 的 alpha 通道,因此在渲染精灵时,我可以绘制一个蓝色矩形并在其上渲染瓶子纹理。这会给人一种水在瓶子里的印象。
不过,瓶子本身的形状当然不是长方形的,所以可以看到瓶子外面的水。我可以改变瓶子图像,使只有瓶子本身是透明的,并将“外部世界”设置为不透明的颜色和 Alpha 通道值,但这又会阻止“世界背景”在该区域可见。
我根本不知道如何以理智的方式实现这一点。我真的必须读取瓶子图像的每个像素,识别瓶子“内部”的像素,然后逐个像素地绘制水吗?一定有更简单的方法,对吧?;)
此类任务的任何最佳实践?
编辑:见下图,让我更清楚地说,我在说什么;)