将fadeIn转换添加到PIXI精灵
Adding fadeIn transition to PIXI sprite
我(第一次!)使用PIXI.js设置了一个基本过渡的渲染,其中精灵在画布上对角移动。几乎在过渡过程的一半,我正在更改纹理以使用另一个图像。它按预期工作。但我想知道如何获得渐变效果,这样图像的变化就不会显得突兀。下面是我正在使用的代码(这里是jsfiddle)。
var stage = new PIXI.Container();
var renderer = PIXI.autoDetectRenderer(150, 150, rendererOptions);
document.body.appendChild(renderer.view);
var texture = PIXI.Texture.fromImage('https://images-na.ssl-images-amazon.com/images/I/81W02uGnuLL._OU01_AC_UL160_SR160,160_.png', true);
var texture2 = PIXI.Texture.fromImage('https://images-na.ssl-images-amazon.com/images/I/81887k9tnQL._OU01_AC_UL160_SR160,160_.png', true);
var sprite = new PIXI.Sprite(texture);
sprite.position.x = 0;
sprite.position.y = 0;
stage.addChild(sprite);
animate();
function animate() {
if (sprite.position.x < renderer.width
|| sprite.position.y < renderer.height) {
if (sprite.position.x == 35) {
sprite.texture = texture2;
}
requestAnimationFrame(animate);
}
sprite.position.x += 0.5;
sprite.position.y += 0.5;
renderer.render(stage);
}
好吧,由于要重新分配纹理引用,所以很难对渐变进行动画处理。
如果能够制作两个精灵,每个纹理一个精灵,则可以操纵alpha场。我用你的jsfiddle演示了这个:
https://jsfiddle.net/55zvq716/
添加第二个精灵以保持纹理2;使其以alpha=0(完全透明)开头
var sprite2 = new PIXI.Sprite(texture2);
sprite2.alpha = 0;
sprite2.position.x = 0;
sprite2.position.y = 0;
不要交换纹理,而是在所需点触发alpha更改
if (sprite.position.x >= 35 && sprite2.alpha < 1) {
sprite.alpha -= .01;
sprite2.alpha += .01;
}
相关文章:
- 打字精灵动画
- 在EaselJS中设置精灵表动画时出现问题
- three.js:如何让透明的png精灵投射和接收阴影
- 如何使用Pixijs获取在加载的精灵表资产中定义的图像
- 如何在pixi.js多边形上放置纹理
- 使用grunt模块创建svg精灵
- 如何移动PIXI显示对象
- 精灵从pixi到p2的边界多边形
- 如何使用Javascript创建带有精灵表的动画按钮
- 计算Pixi.js中精灵纹理的分辨率
- 扩展 pixi.js在构造函数中对访问父的属性进行精灵化
- 在容器中关联精灵 - Pixi.js
- Pixi.js从动画gif文件生成精灵表动画或影片剪辑
- 在pixi v3中加载精灵表
- 在PIXI.js中如何避免精灵中alpha透明区域的交互性(点击等)
- 将fadeIn转换添加到PIXI精灵
- PIXI js,精灵不显示,没有错误
- Pixi.js精灵无法加载
- 为什么在Pixi.js中添加精灵到精灵会导致奇怪的缩放
- Pixi js鼠标事件仅用于最顶端的精灵