Javascript 在Phaser.js上的性能
Javascript 在Phaser.js上的性能,javascript,phaser-framework,Javascript,Phaser Framework,函数预加载(){ this.load.image('background','images/table_en.png.webp'); this.load.image('wheel','images/UpperWheel.png.webp'); this.load.image('ball','images/ball.png.webp'); roulette.circle.array.forEach(i=>{ this.load.image(`${i.index}`,i.src); }); roul
函数预加载(){
this.load.image('background','images/table_en.png.webp');
this.load.image('wheel','images/UpperWheel.png.webp');
this.load.image('ball','images/ball.png.webp');
roulette.circle.array.forEach(i=>{
this.load.image(`${i.index}`,i.src);
});
roulette.lever.array.forEach(i=>{
this.load.image(`${i.index}`,i.src)
});
}
函数更新(){
if(轮盘赌。循环。上一个循环){
roulette.circle.previousCircle.destroy()
}
if(轮盘赌、圆圈、上一个杠杆){
roulette.circle.previousLever.destroy();
}
if(roulette.circle.currentStep==100&&run){
ball.run=true;
}
设circle=this.add.image(108110,`circle${roulette.circle.currentStep}`).setOrigin(0,0).setScale(0.7);
lever=this.add.image(200150,`lever${roulette.lever.currentStep}`).setOrigin(0,0.setScale(0.7);
roulette.circle.method();
轮盘赌。杠杆。方法();
roulette.circle.previousCircle=圆;
roulette.circle.previousLever=杠杆;
}
每帧调用一次update()
方法。Phaser游戏中的默认目标帧每秒(fps
)为60-
游戏中的许多因素都会影响您将看到的实际fps
。如果将其保留为默认值,则大约每秒调用update()
方法60次。如果您希望用户能够真正看到每个图像,那么这可能不是您想要的行为
您可以降低游戏配置中的目标fps
数字,如下所示:
{
type: Phaser.AUTO,
...,
fps: {
target: 30 // 30x per second
}
}
。。。但这可能是不完美的。这是对游戏更新速度的一个全球性的改变,可能还有其他事情需要每秒60次(比如检查输入等)
<> P>更改你的图像的频率,而不需要修改游戏的<代码> FPS,请考虑创建一个单独的方法来处理图像的销毁/创建,并引用在代码> UpDebug()/<代码>中的方法。p>
如果它仍然发生得太快,请考虑在超时中包装<代码>转换图像< /COD> BooLeIn,以进一步延迟图像的更新频率。p>
setTimeout(() => {
changingImage = true;
}, 1000);
setTimeout(() => {
changingImage = true;
}, 1000);