pixi.js 制作 流星雨效果
![在这里插入图片描述](https://img-blog.csdnimg.cn/57aca52b66eb45a891cc08565368d2d9.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5LiB54-w5Za1,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
creatShootingStart(){
let startNum = 25;
this.startSp = [];
this.limetHeight = this.winH/2;
for(let i=0;i<startNum;i++){
let sprite = new PIXI.Sprite(PIXI.loader.resources[this.startImg[0].url].texture);
this.initStartSprite(sprite)
this.app.stage.addChild(sprite);
this.startSp.push(sprite)
}
this.app.ticker.add(delta => this.gameLoop(delta));
},
gameLoop(delta){
this.startSp.forEach((item,index) => {
item.x -= item.vx
item.y += item.vy
item.alpha -= item.alphaVal
if(item.x <= 0||item.y >= this.limetHeight){
this.initStartSprite(item)
}
});
},
initStartSprite(sprite){
sprite.x = this.winW*Math.random();
sprite.y = this.getRandomNum(0,50);
sprite.rotation = -0.8;
let scaleVar = Math.random()/3
sprite.scale.set(scaleVar,scaleVar)
let speedVal = this.getRandomNum(1,5)
sprite.vx = speedVal;
sprite.vy = speedVal;
sprite.alpha = Math.floor(Math.random()*10)/10
sprite.alphaVal = sprite.alpha*(sprite.vy/this.limetHeight)
},
getRandomNum(min,max){
return Math.floor(Math.random()*(max-min) + min);
},