Class: CyberarmEngine::Window
- Inherits:
-
Gosu::Window
- Object
- Gosu::Window
- CyberarmEngine::Window
show all
- Includes:
- Common
- Defined in:
- lib/cyberarm_engine/window.rb
Constant Summary
collapse
- IMAGES =
{}
- SAMPLES =
{}
- SONGS =
{}
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
-
#aspect_ratio ⇒ Object
-
#button_down(id) ⇒ Object
-
#button_up(id) ⇒ Object
-
#current_state ⇒ Object
-
#draw ⇒ Object
-
#draw_circle(cx, cy, r, z = 9999, color = Gosu::Color::GREEN, step = 10) ⇒ Object
-
#dt ⇒ Object
-
#exit_on_opengl_error? ⇒ Boolean
-
#initialize(width: 800, height: 600, fullscreen: false, update_interval: 1000.0 / 60, resizable: false, borderless: false) ⇒ Window
constructor
A new instance of Window.
-
#needs_cursor? ⇒ Boolean
-
#pop_state ⇒ Object
-
#previous_state ⇒ Object
-
#push_state(klass, options = {}) ⇒ Object
-
#shift_state ⇒ Object
-
#update ⇒ Object
Methods included from Common
#darken, #draw_rect, #fill, #get_asset, #get_image, #get_sample, #get_song, #lighten, #opacity, #window
Constructor Details
#initialize(width: 800, height: 600, fullscreen: false, update_interval: 1000.0 / 60, resizable: false, borderless: false) ⇒ Window
Returns a new instance of Window.
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
# File 'lib/cyberarm_engine/window.rb', line 21
def initialize(width: 800, height: 600, fullscreen: false, update_interval: 1000.0 / 60, resizable: false, borderless: false)
@show_cursor = false
super(width, height, fullscreen: fullscreen, update_interval: update_interval, resizable: resizable, borderless: borderless)
$window = self
@last_frame_time = Gosu.milliseconds - 1
@current_frame_time = Gosu.milliseconds
self.caption = "CyberarmEngine #{CyberarmEngine::VERSION} #{Gosu.language}"
@states = []
@exit_on_opengl_error = false
setup if defined?(setup)
end
|
Instance Attribute Details
#exit_on_opengl_error=(value) ⇒ Object
Sets the attribute exit_on_opengl_error
10
11
12
|
# File 'lib/cyberarm_engine/window.rb', line 10
def exit_on_opengl_error=(value)
@exit_on_opengl_error = value
end
|
#last_frame_time ⇒ Object
Returns the value of attribute last_frame_time.
11
12
13
|
# File 'lib/cyberarm_engine/window.rb', line 11
def last_frame_time
@last_frame_time
end
|
#show_cursor ⇒ Object
Returns the value of attribute show_cursor.
9
10
11
|
# File 'lib/cyberarm_engine/window.rb', line 9
def show_cursor
@show_cursor
end
|
Class Method Details
.dt ⇒ Object
17
18
19
|
# File 'lib/cyberarm_engine/window.rb', line 17
def self.dt
$window.last_frame_time / 1000.0
end
|
.now ⇒ Object
13
14
15
|
# File 'lib/cyberarm_engine/window.rb', line 13
def self.now
Gosu.milliseconds
end
|
Instance Method Details
#aspect_ratio ⇒ Object
56
57
58
|
# File 'lib/cyberarm_engine/window.rb', line 56
def aspect_ratio
width / height.to_f
end
|
64
65
66
67
|
# File 'lib/cyberarm_engine/window.rb', line 64
def button_down(id)
super
current_state.button_down(id) if current_state
end
|
69
70
71
72
|
# File 'lib/cyberarm_engine/window.rb', line 69
def button_up(id)
super
current_state.button_up(id) if current_state
end
|
#current_state ⇒ Object
93
94
95
|
# File 'lib/cyberarm_engine/window.rb', line 93
def current_state
@states.last
end
|
#draw ⇒ Object
36
37
38
|
# File 'lib/cyberarm_engine/window.rb', line 36
def draw
current_state.draw if current_state
end
|
#draw_circle(cx, cy, r, z = 9999, color = Gosu::Color::GREEN, step = 10) ⇒ Object
112
113
114
115
116
117
118
|
# File 'lib/cyberarm_engine/window.rb', line 112
def draw_circle(cx, cy, r, z = 9999, color = Gosu::Color::GREEN, step = 10)
0.step(360, step) do |a1|
a2 = a1 + step
draw_line(cx + Gosu.offset_x(a1, r), cy + Gosu.offset_y(a1, r), color, cx + Gosu.offset_x(a2, r),
cy + Gosu.offset_y(a2, r), color, z)
end
end
|
#dt ⇒ Object
52
53
54
|
# File 'lib/cyberarm_engine/window.rb', line 52
def dt
@last_frame_time / 1000.0
end
|
#exit_on_opengl_error? ⇒ Boolean
60
61
62
|
# File 'lib/cyberarm_engine/window.rb', line 60
def exit_on_opengl_error?
@exit_on_opengl_error
end
|
#needs_cursor? ⇒ Boolean
48
49
50
|
# File 'lib/cyberarm_engine/window.rb', line 48
def needs_cursor?
@show_cursor
end
|
#pop_state ⇒ Object
103
104
105
|
# File 'lib/cyberarm_engine/window.rb', line 103
def pop_state
@states.pop
end
|
#previous_state ⇒ Object
97
98
99
100
101
|
# File 'lib/cyberarm_engine/window.rb', line 97
def previous_state
if @states.size > 1 && (state = @states[@states.size - 2])
state
end
end
|
#push_state(klass, options = {}) ⇒ Object
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
# File 'lib/cyberarm_engine/window.rb', line 74
def push_state(klass, options = {})
options = { setup: true }.merge(options)
if klass.instance_of?(klass.class) && defined?(klass.options)
@states << klass
klass.setup if options[:setup]
klass.post_setup if options[:setup]
else
@states << klass.new(options) if child_of?(klass, GameState)
@states << klass.new if child_of?(klass, Element::Container)
current_state.setup if current_state.instance_of?(klass) && options[:setup]
current_state.post_setup if current_state.instance_of?(klass) && options[:setup]
end
end
|
#shift_state ⇒ Object
107
108
109
|
# File 'lib/cyberarm_engine/window.rb', line 107
def shift_state
@states.shift
end
|
#update ⇒ Object
40
41
42
43
44
45
46
|
# File 'lib/cyberarm_engine/window.rb', line 40
def update
Stats.clear
current_state.update if current_state
@last_frame_time = Gosu.milliseconds - @current_frame_time
@current_frame_time = Gosu.milliseconds
end
|