Refactored LoadingState to use Menu

This commit is contained in:
2019-02-07 12:00:11 -06:00
parent f4a81f1e36
commit 5c623f1540
4 changed files with 37 additions and 23 deletions

View File

@@ -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"

View File

@@ -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

View File

@@ -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

View File

@@ -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