粒子生成速度太快 - Phaser 3
Particles spawn too fast - Phaser 3
我正在尝试使用粒子发射器在我的游戏主菜单后面制作雪花效果,但粒子生成速度太快。
我有这个代码:
var particles = this.add.particles('snow');
var emitter = particles.createEmitter({
speedY: { min: 15, max: 40 },
gravityY: 0,
scale: 0.2,
quantity: 1,
lifespan: { min: 28000, max: 30000 },
emitZone: { source: new Phaser.Geom.Line(-20, -100, 820, -100 )}
});
而且数量只有一个,所以我不知道如何解决这个问题。是否可以更改粒子的生成速度?
我正在使用 Phaser 3 和街机物理。
我认为您正在寻找的是 frequency 设置。
它不会完全改变生成速度,但会改变流动周期之间的时间。如果您将 frequency: 1000
添加到您当前拥有的发射器,它会同时在屏幕上为您提供大约 8-10 个粒子。你可以玩这个数字,直到你得到你想要的流量。
我的雪花效果就是这样实现的,也许对你有帮助。雪花有随机的风吹和旋转。
this.emitter = snowParticles.createEmitter({
frame: [0, 1, 2, 3, 4, 5],
x: {min: 0, max: this.sys.game.canvas.width},
y: 0 ,
lifespan: {min: 20000, max: 60000},
speedY: 50,
gravityX: Math.ceil((Math.random() - 0.5) * 2) < 1 ? -10 : 10,
gravityY: 10,
minVelocityY: 10,
maxVelocityY: 30,
minVelocityX: 10,
maxVelocityX: 30,
quantity: 1,
scale: 0.4,
frequency: 1000,
blendMode: 'ADD',
rotate: { start: 0, end: 180 }
});
我正在尝试使用粒子发射器在我的游戏主菜单后面制作雪花效果,但粒子生成速度太快。
我有这个代码:
var particles = this.add.particles('snow');
var emitter = particles.createEmitter({
speedY: { min: 15, max: 40 },
gravityY: 0,
scale: 0.2,
quantity: 1,
lifespan: { min: 28000, max: 30000 },
emitZone: { source: new Phaser.Geom.Line(-20, -100, 820, -100 )}
});
而且数量只有一个,所以我不知道如何解决这个问题。是否可以更改粒子的生成速度?
我正在使用 Phaser 3 和街机物理。
我认为您正在寻找的是 frequency 设置。
它不会完全改变生成速度,但会改变流动周期之间的时间。如果您将 frequency: 1000
添加到您当前拥有的发射器,它会同时在屏幕上为您提供大约 8-10 个粒子。你可以玩这个数字,直到你得到你想要的流量。
我的雪花效果就是这样实现的,也许对你有帮助。雪花有随机的风吹和旋转。
this.emitter = snowParticles.createEmitter({
frame: [0, 1, 2, 3, 4, 5],
x: {min: 0, max: this.sys.game.canvas.width},
y: 0 ,
lifespan: {min: 20000, max: 60000},
speedY: 50,
gravityX: Math.ceil((Math.random() - 0.5) * 2) < 1 ? -10 : 10,
gravityY: 10,
minVelocityY: 10,
maxVelocityY: 30,
minVelocityX: 10,
maxVelocityX: 30,
quantity: 1,
scale: 0.4,
frequency: 1000,
blendMode: 'ADD',
rotate: { start: 0, end: 180 }
});