Optimised particle fields
This commit is contained in:
parent
7e8c4cdf12
commit
49cb0efe72
@ -9,11 +9,11 @@ class BlueParticle extends MomentumEngine.Classes.Rect {
|
||||
|
||||
constructor (x, y) {
|
||||
super(x, y, 1, 1, new MomentumEngine.Classes.Color(255, 255, 255, 0));
|
||||
this.timeToLive = 15000;
|
||||
this.timeToLive = 25500;
|
||||
}
|
||||
|
||||
update (delta) {
|
||||
this.color.a = this.color.a - (delta * 0.00005);
|
||||
this.color.a = this.color.a - (delta * 0.00004);
|
||||
}
|
||||
|
||||
}
|
||||
@ -46,10 +46,10 @@ window.onload = function () {
|
||||
let rect = new MomentumEngine.Classes.Rect(width / 8 - baseSize, height / 2 - baseSize, baseSize * 2, baseSize * 2, red),
|
||||
emitter = new MomentumEngine.Classes.Emitter(baseSize, baseSize, 4, new MomentumEngine.Classes.Vector2D(0, 0.05), BlueParticle);
|
||||
|
||||
let fieldRect = new MomentumEngine.Classes.Rect(width - (baseSize * 33), height - (baseSize * 10), baseSize * 2, baseSize * 2, blue),
|
||||
let fieldRect = new MomentumEngine.Classes.Rect(width - (baseSize * 33), height - (baseSize * 11), baseSize * 2, baseSize * 2, blue),
|
||||
field = new MomentumEngine.Classes.Field(baseSize, baseSize, 0.1);
|
||||
|
||||
let fieldRect2 = new MomentumEngine.Classes.Rect(width - (baseSize * 33), baseSize * 10, baseSize * 2, baseSize * 2, blue),
|
||||
let fieldRect2 = new MomentumEngine.Classes.Rect(width - (baseSize * 33), baseSize * 9, baseSize * 2, baseSize * 2, blue),
|
||||
field2 = new MomentumEngine.Classes.Field(baseSize, baseSize, 0.1);
|
||||
|
||||
mainScene.addChildEntity(rect);
|
||||
@ -82,7 +82,7 @@ window.onload = function () {
|
||||
|
||||
emitter.setParticleParent(mainScene);
|
||||
emitter.particleFields.push(field, field2);
|
||||
//emitter.spread = Math.PI / 32;
|
||||
emitter.spread = Math.PI / 8;
|
||||
emitter.emitting = true;
|
||||
|
||||
particles.start();
|
||||
|
@ -195,6 +195,10 @@ class Entity {
|
||||
|
||||
let rendered = this.render && this.render();
|
||||
|
||||
if (rendered) {
|
||||
this._game._lastFrameTotalRenders++;
|
||||
}
|
||||
|
||||
if (rendered || (typeof rendered == "undefined") || (typeof this.render === "undefined")) {
|
||||
|
||||
this.children.forEach((child) => {
|
||||
|
@ -95,6 +95,7 @@ class Game extends Entity {
|
||||
|
||||
this._game = this;
|
||||
this._lastFrameTimestamp = 0;
|
||||
this._lastFrameTotalRenders = 0;
|
||||
this._wantPause = true;
|
||||
|
||||
}
|
||||
@ -146,8 +147,9 @@ class Game extends Entity {
|
||||
let currentTimestamp = +(new Date()),
|
||||
delta = currentTimestamp - self._lastFrameTimestamp;
|
||||
|
||||
delta = Math.min(delta, 1000 / self.desiredFps);
|
||||
//delta = Math.min(delta, 1000 / self.desiredFps);
|
||||
self._lastFrameTimestamp = currentTimestamp;
|
||||
self._lastFrameTotalRenders = 0;
|
||||
|
||||
self.step(delta);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user