-
Notifications
You must be signed in to change notification settings - Fork 3
/
camera.fade.coffee
69 lines (55 loc) · 2.09 KB
/
camera.fade.coffee
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
###*
The <code>Fade</code> module provides convenience methods for accessing common Engine.Flash presets.
@name Fade
@fieldOf Camera
@module
@param {Object} I Instance variables
@param {Object} self Reference to the engine
@see Camera.Flash
###
Camera.Fade = (I, self) ->
fadeInDefaults =
alpha: 0
color: 'black'
duration: 30
fadeOutDefaults =
alpha: 1
color: 'transparent'
duration: 30
configureFade = (duration, color, alpha) ->
I.flashDuration = duration
I.flashCooldown = duration
I.flashColor = Color(color)
I.flashTargetAlpha = alpha
###*
A convenient way to set the flash effect instance variables. This provides a shorthand for fading the screen in
from a given color over a specified duration.
engine.fadeIn()
# => Sets the effect variables to their default state. This will the screen to go from black to transparent over the next 30 frames.
engine.fadeIn('blue', 50)
# => This effect will start off blue and fade to transparent over 50 frames.
@name fadeIn
@methodOf Camera#
@param {Number} [duration=30] How long the effect lasts
@param {Color} [color="black"] The color to fade from
###
fadeIn: (options={}) ->
{alpha, color, duration} = Object.reverseMerge(options, fadeInDefaults)
configureFade(duration, color, alpha)
###*
A convenient way to set the flash effect instance variables. This provides a shorthand for fading
the screen to a given color over a specified duration.
camera.fadeOut()
# => Sets the effect variables to their default state. This will the screen to fade from ransparent to black over the next 30 frames.
camera.fadeOut
color: blue
duration: 30
# => This effect will start off transparent and change to blue over 50 frames.
@name fadeOut
@methodOf Camera#
@param {Number} [duration=30] How long the effect lasts
@param {Color} [color="transparent"] The color to fade to
###
fadeOut: (options={}) ->
{alpha, color, duration} = Object.reverseMerge(options, fadeOutDefaults)
configureFade(duration, color, alpha)