Skip to content

Commit e7bebaa

Browse files
author
Artur Ostręga
committed
example: Define GuyLook#animation
1 parent 0743bfb commit e7bebaa

File tree

2 files changed

+39
-17
lines changed

2 files changed

+39
-17
lines changed

example/src/looks/guy_look.rb

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
class GuyLook < Yeah::SpriteLook #
22
#class GuyLook < SpriteLook
3+
attr_accessor :walking, :direction
4+
35
self.image = Yeah::Image['guy.png'] #
46
self.size = 64, 64
57
self.speed = 15
@@ -14,4 +16,32 @@ class GuyLook < Yeah::SpriteLook #
1416
walk_down: (18..26),
1517
walk_right: (27..35)
1618
}
19+
20+
def animation
21+
if walking
22+
case direction
23+
when :right
24+
:walk_right
25+
when :left
26+
:walk_left
27+
when :up
28+
:walk_up
29+
when :down
30+
:walk_down
31+
end
32+
else
33+
case direction
34+
when :right
35+
:stand_right
36+
when :left
37+
:stand_left
38+
when :up
39+
:stand_up
40+
when :down
41+
:stand_down
42+
else
43+
:stand_down
44+
end
45+
end
46+
end
1747
end

example/src/things/guy.rb

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,39 +5,31 @@ class Guy < Yeah::Thing
55
self.look = GuyLook #
66

77
def act(elapsed)
8-
walking = false
8+
look.walking = false
99

1010
if keyboard.pressing? :right
1111
self.x += speed * elapsed
12-
look.animation = :walk_right if keyboard.pressed? :right
13-
walking = true
12+
look.direction = :right
13+
look.walking = true
1414
end
1515

1616
if keyboard.pressing? :left
1717
self.x -= speed * elapsed
18-
look.animation = :walk_left if keyboard.pressed? :left
19-
walking = true
18+
look.direction = :left
19+
look.walking = true
2020
end
2121

2222
if keyboard.pressing? :up
2323
self.y += speed * elapsed
24-
look.animation = :walk_up if keyboard.pressed? :up
25-
walking = true
24+
look.direction = :up
25+
look.walking = true
2626
end
2727

2828
if keyboard.pressing? :down
2929
self.y -= speed * elapsed
30-
look.animation = :walk_down if keyboard.pressed? :down
31-
walking = true
30+
look.direction = :down
31+
look.walking = true
3232
end
33-
34-
unless walking
35-
look.animation = :stand_right if keyboard.released? :right
36-
look.animation = :stand_left if keyboard.released? :left
37-
look.animation = :stand_up if keyboard.released? :up
38-
look.animation = :stand_down if keyboard.released? :down
39-
end
40-
4133
end
4234

4335
def speed

0 commit comments

Comments
 (0)