Game Development Reference
In-Depth Information
81 end
82
83 def button_down ( id )
84 close if id == Gosu :: KbEscape
85 if id == Gosu :: KbSpace
86 @camera . zoom = 1.0
87 @camera . x = 0
88 @camera . y = 0
89 end
90 end
91
92 def update
93
@camera . x -= SPEED if button_down?( Gosu :: KbA )
@camera . x += SPEED if button_down?( Gosu :: KbD )
94
@camera . y -= SPEED if button_down?( Gosu :: KbW )
95
@camera . y += SPEED if button_down?( Gosu :: KbS )
96
97
98
zoom_delta = @camera . zoom > 0 ? 0.01 : 1.0
99
100 if button_down?( Gosu :: KbUp )
101 @camera . zoom -= zoom_delta
102 end
103 if button_down?( Gosu :: KbDown )
104 @camera . zoom += zoom_delta
105 end
106 self . caption = @camera . to_s
107 end
108
109 def draw
110 off_x = - @camera . x + width / 2
111 off_y = - @camera . y + height / 2
112 cam_x = @camera . x
113 cam_y = @camera . y
114 translate(off_x, off_y) do
115 @camera . draw_crosshair
116 zoom = @camera . zoom
117 scale(zoom, zoom, cam_x, cam_y) do
118 @map . draw( @camera )
119 end
120 end
121 info = 'Objects on/off screen: ' <<
122 " #{ @map . on_screen } / #{ @map . off_screen } "
123 info_img = Gosu :: Image . from_text(
124 self , info, Gosu . default_font_name, 30 )
125 info_img . draw( 10 , 10 , 1 )
126 end
Search WWH ::




Custom Search