|
| 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