diff --git a/i-mic-fps.rb b/i-mic-fps.rb index 87bf4ab..cbf897e 100644 --- a/i-mic-fps.rb +++ b/i-mic-fps.rb @@ -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" diff --git a/lib/states/game_states/loading_state.rb b/lib/states/game_states/loading_state.rb index 83a2235..ede325f 100644 --- a/lib/states/game_states/loading_state.rb +++ b/lib/states/game_states/loading_state.rb @@ -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 \ No newline at end of file diff --git a/lib/states/menu.rb b/lib/states/menu.rb index 17835e2..a0ae9bd 100644 --- a/lib/states/menu.rb +++ b/lib/states/menu.rb @@ -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 diff --git a/lib/states/menus/main_menu.rb b/lib/states/menus/main_menu.rb index 205cdde..8c58735 100644 --- a/lib/states/menus/main_menu.rb +++ b/lib/states/menus/main_menu.rb @@ -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