@@ -3,15 +3,23 @@ import Engine from './engine.js';
33
44const 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