Skip to content

Commit dabfbc0

Browse files
committed
Added animation build function.
1 parent fcc01d2 commit dabfbc0

1 file changed

Lines changed: 64 additions & 0 deletions

File tree

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
var GetAdvancedValue = require('../utils/object/GetAdvancedValue');
2+
3+
var BuildGameObjectAnimation = function (sprite, config)
4+
{
5+
var animConfig = GetAdvancedValue(config, 'anims', null);
6+
7+
if (animConfig === null)
8+
{
9+
return sprite;
10+
}
11+
12+
if (typeof animConfig === 'string')
13+
{
14+
// { anims: 'key' }
15+
sprite.anims.play(animConfig);
16+
}
17+
else if (typeof animConfig === 'object')
18+
{
19+
// { anims: {
20+
// key: string
21+
// startFrame: [string|integer]
22+
// delay: [float]
23+
// repeat: [integer]
24+
// repeatDelay: [float]
25+
// yoyo: [boolean]
26+
// play: [boolean]
27+
// delayedPlay: [boolean]
28+
// }
29+
// }
30+
31+
var key = GetAdvancedValue(animConfig, 'key', undefined);
32+
var startFrame = GetAdvancedValue(animConfig, 'startFrame', undefined);
33+
34+
var delay = GetAdvancedValue(animConfig, 'delay', 0);
35+
var repeat = GetAdvancedValue(animConfig, 'repeat', 0);
36+
var repeatDelay = GetAdvancedValue(animConfig, 'repeatDelay', 0);
37+
var yoyo = GetAdvancedValue(animConfig, 'yoyo', false);
38+
39+
var anims = sprite.anims;
40+
41+
anims.delay(delay);
42+
anims.repeat(repeat);
43+
anims.repeatDelay(repeatDelay);
44+
anims.yoyo(yoyo);
45+
46+
if (GetAdvancedValue(animConfig, 'play', true))
47+
{
48+
anims.play(key, startFrame);
49+
}
50+
else
51+
{
52+
var d = GetAdvancedValue(animConfig, 'delayedPlay', 0);
53+
54+
if (d > 0)
55+
{
56+
anims.delayedPlay(d, key, startFrame);
57+
}
58+
}
59+
}
60+
61+
return sprite;
62+
};
63+
64+
module.exports = BuildGameObjectAnimation;

0 commit comments

Comments
 (0)