Game Development Reference
In-Depth Information
@gun_angle = - atan * 180 / Math :: PI
22
@body_angle = change_angle( @body_angle ,
23
Gosu :: KbW , Gosu :: KbS , Gosu :: KbA , Gosu :: KbD )
24
25 end
26
27 def draw
28 @shadow . draw_rot( @x - 1 , @y - 1 , 0 , @body_angle )
29 @body . draw_rot( @x , @y , 1 , @body_angle )
30 @gun . draw_rot( @x , @y , 2 , @gun_angle )
31 end
32
33
private
34
35 def change_angle (previous_angle, up, down, right, left)
36 if @window . button_down?(up)
37 angle = 0.0
38 angle += 45.0 if @window . button_down?(left)
39 angle -= 45.0 if @window . button_down?(right)
40 elsif @window . button_down?(down)
41 angle = 180.0
42 angle -= 45.0 if @window . button_down?(left)
43 angle += 45.0 if @window . button_down?(right)
44 elsif @window . button_down?(left)
45 angle = 90.0
46 angle += 45.0 if @window . button_down?(up)
47 angle -= 45.0 if @window . button_down?(down)
48 elsif @window . button_down?(right)
49 angle = 270.0
50 angle -= 45.0 if @window . button_down?(up)
51 angle += 45.0 if @window . button_down?(down)
52 end
53 angle || previous_angle
54 end
55 end
56
57 class GameWindow < Gosu :: Window
58
MAP_FILE = File . join( File . dirname(
__FILE__ ), 'island.json' )
59
UNIT_FILE = File . join( File . dirname( File . dirname(
60
__FILE__ )), 'media' , 'ground_units.json' )
61
SPEED = 5
62
63
64 def initialize
65 super ( 640 , 480 , false )
66
@map = Gosu :: Tiled . load_json( self , MAP_FILE )
@units = Gosu :: TexturePacker . load_json(
67
Search WWH ::




Custom Search