@@ -62,10 +62,10 @@ const Smoke = (options = {}) => {
62
62
if ( data . frameCount % data . spriteFrameModulus === 0 ) {
63
63
64
64
// first, animate through sprite. then, fade opacity.
65
- if ( data . spriteFrame < data . spriteFrames - 1 ) {
66
- // advance smoke sprite, 0% -> -100% (L-R )
65
+ if ( data . spriteFrame < data . spriteFrames ) {
66
+ // advance smoke sprite, 0% -> -100% (top-to-bottom )
67
67
if ( data . isOnScreen ) {
68
- sprites . setTransformXY ( exports , dom . oTransformSprite , `${ - ( ( data . spriteFrame / ( data . spriteFrames - 1 ) ) * 100 ) } %` , '0%' ) ;
68
+ sprites . setTransformXY ( exports , dom . oTransformSprite , `0%` , ` ${ - data . spriteFrame * data . spriteOffsetPerFrame } px` ) ;
69
69
}
70
70
data . spriteFrame ++ ;
71
71
} else {
@@ -120,8 +120,10 @@ const Smoke = (options = {}) => {
120
120
frameCount : 0 ,
121
121
animateModulus : 1 ,
122
122
spriteFrameModulus : ( options . spriteFrameModulus || 2 ) ,
123
- spriteFrame : ( options . spriteFrame !== undefined ? options . spriteFrame : rndInt ( 4 ) ) ,
124
- spriteFrames : 10 ,
123
+ spriteFrame : ( options . spriteFrame !== undefined ? options . spriteFrame : rndInt ( 6 ) ) ,
124
+ spriteFrames : 12 ,
125
+ spritePixelHeight : 108 , // real sprite is 216, but we render half-size.
126
+ spriteOffsetPerFrame : 108 / 12 ,
125
127
isFading : false ,
126
128
fadeFrame : 0 ,
127
129
fadeFrames : 8 ,
@@ -130,12 +132,12 @@ const Smoke = (options = {}) => {
130
132
height : 9 ,
131
133
gravity : options . gravity !== undefined ? options . gravity : 0.5 ,
132
134
rotation : rnd ( 360 ) ,
133
- rotationAmount : rnd ( 5 ) * plusMinus ( ) ,
135
+ rotationAmount : plusMinus ( rnd ( 5 ) ) ,
134
136
// by default, allow some randomness
135
137
baseScale : options . baseScale || ( 0.65 + rnd ( 0.35 ) ) ,
136
138
// hackish: use provided, or default values.
137
- vX : options . vX !== undefined ? options . vX : ( 3 * Math . random ( ) ) * plusMinus ( ) ,
138
- vY : options . vY !== undefined ? options . vY : - ( 3 * Math . random ( ) ) ,
139
+ vX : options . vX !== undefined ? options . vX : plusMinus ( rnd ( 3 ) ) ,
140
+ vY : options . vY !== undefined ? options . vY : - rnd ( 3 ) ,
139
141
domPool : null
140
142
} , options ) ;
141
143
0 commit comments