blob: b4c5e1292d8b4725b40ba003f71a23670c2c0662 (
plain)
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
|
* DOCS: ~Numeric#frame_index~
This function is helpful for determining the index of frame-by-frame
sprite animation. The numeric value ~self~ represents the moment the
animation started.
~frame_index~ takes three additional parameters:
- How many frames exist in the sprite animation.
- How long to hold each animation for.
- Whether the animation should repeat.
~frame_index~ will return ~nil~ if the time for the animation is out
of bounds of the parameter specification.
Example using variables:
#+begin_src ruby
def tick args
start_looping_at = 0
number_of_sprites = 6
number_of_frames_to_show_each_sprite = 4
does_sprite_loop = true
sprite_index =
start_looping_at.frame_index number_of_sprites,
number_of_frames_to_show_each_sprite,
does_sprite_loop
sprite_index ||= 0
args.outputs.sprites << [
640 - 50,
360 - 50,
100,
100,
"sprites/dragon-#{sprite_index}.png"
]
end
#+end_src
Example using named parameters:
#+begin_src ruby
start_looping_at = 0
sprite_index =
start_looping_at.frame_index count: 6,
hold_for: 4,
repeat: true
sprite_index ||= 0
args.outputs.sprites << [
640 - 50,
360 - 50,
100,
100,
"sprites/dragon-#{sprite_index}.png"
]
#+end_src
|