Skip to content

Commit 53f08aa

Browse files
committed
Turns out there are 12 smoke images. Make 'em 2x, and vertical.
1 parent 4a561c4 commit 53f08aa

File tree

2 files changed

+10
-8
lines changed

2 files changed

+10
-8
lines changed

image/smoke-sprite.png

100755100644
160 Bytes
Loading

script/elements/Smoke.js

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,10 @@ const Smoke = (options = {}) => {
6262
if (data.frameCount % data.spriteFrameModulus === 0) {
6363

6464
// 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)
6767
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`);
6969
}
7070
data.spriteFrame++;
7171
} else {
@@ -120,8 +120,10 @@ const Smoke = (options = {}) => {
120120
frameCount: 0,
121121
animateModulus: 1,
122122
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,
125127
isFading: false,
126128
fadeFrame: 0,
127129
fadeFrames: 8,
@@ -130,12 +132,12 @@ const Smoke = (options = {}) => {
130132
height: 9,
131133
gravity: options.gravity !== undefined ? options.gravity : 0.5,
132134
rotation: rnd(360),
133-
rotationAmount: rnd(5) * plusMinus(),
135+
rotationAmount: plusMinus(rnd(5)),
134136
// by default, allow some randomness
135137
baseScale: options.baseScale || (0.65 + rnd(0.35)),
136138
// 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),
139141
domPool: null
140142
}, options);
141143

0 commit comments

Comments
 (0)