Skip to content

Commit 1627a8a

Browse files
committed
feat: add type sprite on phaser engine
1 parent ce6ac3e commit 1627a8a

File tree

1 file changed

+20
-10
lines changed

1 file changed

+20
-10
lines changed

src/scripts/phaser.js

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,23 @@ import Engine from './engine.js';
33

44
const scene = (engine) => {
55
return {
6-
preload() {},
6+
preload() {
7+
this.load.image('sprite', 'sprite.png');
8+
},
79
create() {
810
for (let i = 0; i < engine.count; i++) {
911
const r = engine.particles[i];
10-
const particle = this.add.circle(r.x, r.y, r.size, 0xffffff);
11-
if (engine.type === 'stroke') {
12-
particle.setStrokeStyle(1, 0xffffff);
13-
particle.isFilled = false;
14-
} else if (engine.type === 'fill') particle.setStrokeStyle(1, 0x000000);
12+
let particle;
13+
if (engine.type === 'sprite') {
14+
particle = this.add.sprite(r.x, r.y, 'sprite');
15+
} else {
16+
particle = this.add.circle(r.x, r.y, r.size, 0xffffff);
17+
if (engine.type === 'stroke') {
18+
particle.setStrokeStyle(1, 0xffffff);
19+
particle.isFilled = false;
20+
} else if (engine.type === 'fill')
21+
particle.setStrokeStyle(1, 0x000000);
22+
}
1523

1624
engine.particles[i].el = particle;
1725
}
@@ -27,9 +35,10 @@ const scene = (engine) => {
2735
else if (r.y + r.size < 0) r.dy *= -1;
2836
if (r.x > engine.width) r.dx *= -1;
2937
else if (r.y > engine.height) r.dy *= -1;
30-
31-
r.el.x = r.x;
32-
r.el.y = r.y;
38+
if (r.el) {
39+
r.el.x = r.x;
40+
r.el.y = r.y;
41+
}
3342
}
3443
engine.fpsmeter.tick();
3544
},
@@ -82,7 +91,8 @@ class CanvasEngine extends Engine {
8291
this.particles = particles;
8392
}
8493
render() {
85-
new Phaser.Game(this.config);
94+
if (this.game) this.game.destroy(false, false);
95+
this.game = new Phaser.Game(this.config);
8696
}
8797
}
8898

0 commit comments

Comments
 (0)