mirror of
https://github.com/cyberarm/i-mic-fps.git
synced 2025-12-15 07:32:35 +00:00
Refactored LoadingState to use Menu
This commit is contained in:
@@ -64,6 +64,7 @@ require_relative "lib/managers/shader_manager"
|
||||
require_relative "lib/managers/object_manager"
|
||||
require_relative "lib/managers/light_manager"
|
||||
require_relative "lib/managers/network_manager"
|
||||
require_relative "lib/managers/collision_manager"
|
||||
|
||||
require_relative "lib/renderer/renderer"
|
||||
require_relative "lib/renderer/shader"
|
||||
@@ -71,9 +72,9 @@ require_relative "lib/renderer/opengl_renderer"
|
||||
require_relative "lib/renderer/bounding_box_renderer"
|
||||
|
||||
require_relative "lib/states/game_state"
|
||||
require_relative "lib/states/game_states/loading_state"
|
||||
require_relative "lib/states/game_states/game"
|
||||
require_relative "lib/states/menu"
|
||||
require_relative "lib/states/game_states/game"
|
||||
require_relative "lib/states/game_states/loading_state"
|
||||
require_relative "lib/states/menus/main_menu"
|
||||
|
||||
require_relative "lib/objects/text"
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
class IMICFPS
|
||||
class LoadingState < GameState
|
||||
class LoadingState < Menu
|
||||
def setup
|
||||
@header = Text.new("I-MIC FPS", y: 10, size: 100, alignment: :center)
|
||||
title "I-MIC FPS"
|
||||
#@header = Text.new("I-MIC FPS", y: 10, size: 100, alignment: :center)
|
||||
@subheading = Text.new("Loading Assets", y: 100, size: 50, alignment: :center)
|
||||
@state = Text.new("Preparing...", y: window.height/2-40, size: 40, alignment: :center)
|
||||
@percentage = Text.new("0%", y: window.height-50-25, size: 50, alignment: :center)
|
||||
@percentage = Text.new("0%", y: window.height - 100 + 25, size: 50, alignment: :center)
|
||||
|
||||
@dummy_game_object = nil
|
||||
@assets = []
|
||||
@@ -22,22 +23,16 @@ class IMICFPS
|
||||
|
||||
@completed_for_ms = 0
|
||||
@lock = false
|
||||
|
||||
@base_color = Gosu::Color.rgb(0, 180, 180)
|
||||
end
|
||||
|
||||
def draw
|
||||
@header.draw
|
||||
super
|
||||
@subheading.draw
|
||||
@state.draw
|
||||
|
||||
# fill()
|
||||
color = Gosu::Color.rgb(255, 127, 0)
|
||||
color_two = Gosu::Color.rgb(200, 100, 0)
|
||||
Gosu.draw_quad(
|
||||
0, 0, color,
|
||||
window.width, 0, color_two,
|
||||
0, window.height, color,
|
||||
window.width, window.height, color_two
|
||||
)
|
||||
|
||||
progressbar
|
||||
end
|
||||
|
||||
@@ -75,10 +70,25 @@ class IMICFPS
|
||||
@assets << {type: type, path: path}
|
||||
end
|
||||
|
||||
def progressbar
|
||||
def progressbar(x = window.width/4, y = window.height - 104)
|
||||
@percentage.draw
|
||||
progress = (@asset_index.to_f/@assets.count)*window.width
|
||||
draw_rect(0, window.height-100, progress, 100, Gosu::Color.rgb(255,127,0))
|
||||
progress = (@asset_index.to_f/@assets.count)*window.width/2
|
||||
height = 100
|
||||
|
||||
dark_color= Gosu::Color.rgb(@base_color.red - 100, @base_color.green - 100, @base_color.blue - 100)#Gosu::Color.rgb(64, 127, 255)
|
||||
color = Gosu::Color.rgb(@base_color.red - 50, @base_color.green - 50, @base_color.blue - 50)#Gosu::Color.rgb(0,127,127)
|
||||
color_two = Gosu::Color.rgb(@base_color.red + 50, @base_color.green + 50, @base_color.blue + 50)#Gosu::Color.rgb(64, 127, 255)
|
||||
|
||||
draw_rect(x, y-2, x + window.width/4, height+4, dark_color)
|
||||
|
||||
Gosu.clip_to(x, y, progress, height) do
|
||||
Gosu.draw_quad(
|
||||
x, y, color,
|
||||
x + x + window.width/4, y, color_two,
|
||||
x, y + height, color,
|
||||
x + x + window.width/4, y + height, color_two
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -1,12 +1,12 @@
|
||||
class IMICFPS
|
||||
class Menu < GameState
|
||||
def initialize
|
||||
def initialize(*args)
|
||||
@elements = []
|
||||
@size = 50
|
||||
@slope = 250
|
||||
@color_step = 10
|
||||
@base_color = Gosu::Color.rgb(255, 127, 0)
|
||||
super
|
||||
super(*args)
|
||||
end
|
||||
|
||||
def title(text, color = @base_color)
|
||||
@@ -44,7 +44,7 @@ class IMICFPS
|
||||
draw_rect(
|
||||
$window.width/4, 0,
|
||||
$window.width/2, $window.height,
|
||||
Gosu::Color.rgba(100, 100, 100, 150)
|
||||
Gosu::Color.rgba(0, 0, 0, 150)
|
||||
# Gosu::Color.rgba(@base_color.red+@color_step, @base_color.green+@color_step, @base_color.blue+@color_step, 200)
|
||||
)
|
||||
|
||||
@@ -56,10 +56,10 @@ class IMICFPS
|
||||
# Cursor
|
||||
fill_quad(
|
||||
mouse_x, mouse_y,
|
||||
mouse_x+16, mouse_y+16,
|
||||
mouse_x+16, mouse_y,
|
||||
mouse_x, mouse_y+16,
|
||||
mouse_x, mouse_y+16,
|
||||
Gosu::Color::RED, Float::INFINITY
|
||||
Gosu::Color::WHITE, Float::INFINITY
|
||||
)
|
||||
end
|
||||
|
||||
|
||||
@@ -5,6 +5,9 @@ class IMICFPS
|
||||
link "Single Player" do
|
||||
push_game_state(LoadingState.new(forward: Game))
|
||||
end
|
||||
link "Settings" do
|
||||
# push_game_state(SettingsMenu)
|
||||
end
|
||||
link "Exit" do
|
||||
window.close
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user