mirror of
https://github.com/cyberarm/i-mic-fps.git
synced 2025-12-15 15:42:35 +00:00
60 lines
1.4 KiB
Ruby
60 lines
1.4 KiB
Ruby
class IMICFPS
|
|
class Window < CyberarmEngine::Engine
|
|
attr_accessor :number_of_vertices, :needs_cursor
|
|
attr_reader :camera
|
|
|
|
def initialize(window_width = 1280, window_height = 800, fullscreen = false)
|
|
fps_target = (ARGV.first.to_i != 0) ? ARGV.first.to_i : 60
|
|
if ARGV.join.include?("--native")
|
|
super(width: Gosu.screen_width, height: Gosu.screen_height, fullscreen: true, resizable: true, update_interval: 1000.0/fps_target)
|
|
else
|
|
super(width: window_width, height: window_height, fullscreen: fullscreen, resizable: true, update_interval: 1000.0/fps_target)
|
|
end
|
|
$window = self
|
|
@needs_cursor = false
|
|
@number_of_vertices = 0
|
|
|
|
self.caption = "#{IMICFPS::NAME} v#{IMICFPS::VERSION} (#{IMICFPS::RELEASE_NAME})"
|
|
|
|
@show_console = false
|
|
@console = Console.new
|
|
Commands::Command.setup
|
|
|
|
push_state(MainMenu)
|
|
end
|
|
|
|
def draw
|
|
super
|
|
|
|
@console.draw if @show_console
|
|
end
|
|
|
|
def update
|
|
super
|
|
|
|
@console.update if @show_console
|
|
end
|
|
|
|
def button_down(id)
|
|
if @show_console
|
|
@console.button_down(id)
|
|
else
|
|
super
|
|
end
|
|
|
|
if id == Gosu::KbBacktick
|
|
@show_console ? @console.blur : @console.focus
|
|
@show_console = !@show_console
|
|
end
|
|
end
|
|
|
|
def button_up(id)
|
|
if @show_console
|
|
@console.button_up(id)
|
|
else
|
|
super
|
|
end
|
|
end
|
|
end
|
|
end
|