From fd3785cdcddfcc12c84a39bccfef5b598fcbce2c Mon Sep 17 00:00:00 2001 From: Cyberarm Date: Mon, 4 May 2020 11:13:51 -0500 Subject: [PATCH] Updated menus, added background to Tools --- lib/common_methods.rb | 31 +++++++++++++--------- lib/states/game_states/boot.rb | 9 +------ lib/states/game_states/loading_state.rb | 9 ++++--- lib/tools/asset_viewer/lib/main_menu.rb | 6 +++++ lib/tools/map_editor/lib/main_menu.rb | 7 +++++ lib/ui/menu.rb | 35 +++++++++++++++---------- lib/window.rb | 2 +- 7 files changed, 59 insertions(+), 40 deletions(-) diff --git a/lib/common_methods.rb b/lib/common_methods.rb index 2938493..906df3f 100644 --- a/lib/common_methods.rb +++ b/lib/common_methods.rb @@ -52,19 +52,21 @@ class IMICFPS ) end - def menu_background(color, color_step, transparency, bar_size, slope) + def menu_background(primary_color, accent_color, color_step, transparency, bar_size, slope) ((Gosu.screen_height + slope) / bar_size).times do |i| + color = Gosu::Color.rgba( + primary_color.red - i * color_step, + primary_color.green - i * color_step, + primary_color.blue - i * color_step, + transparency + ) + fill_quad( 0, i * bar_size, 0, slope + (i * bar_size), window.width / 2, (-slope) + (i * bar_size), window.width / 2, i * bar_size, - Gosu::Color.rgba( - color.red - i * color_step, - color.green - i * color_step, - color.blue - i * color_step, - transparency - ), + color, -2 ) fill_quad( @@ -72,15 +74,18 @@ class IMICFPS window.width, slope + (i * bar_size), window.width / 2, (-slope) + (i * bar_size), window.width / 2, i * bar_size, - Gosu::Color.rgba( - color.red - i * color_step, - color.green - i * color_step, - color.blue - i * color_step, - transparency - ), + color, -2 ) end + + Gosu.draw_quad( + 0, 0, primary_color, + window.width, 0, primary_color, + window.width, window.height, accent_color, + 0, window.height, accent_color, + -2 + ) end def gl_error? diff --git a/lib/states/game_states/boot.rb b/lib/states/game_states/boot.rb index ceb6638..728bcb1 100644 --- a/lib/states/game_states/boot.rb +++ b/lib/states/game_states/boot.rb @@ -19,17 +19,10 @@ class IMICFPS end def draw - menu_background(@primary_color, @color_step, @transparency, @bar_size, @slope) + menu_background(@primary_color, @accent_color, @color_step, @transparency, @bar_size, @slope) fraction_left = ((Gosu.milliseconds - @start_time) / (@time_to_live - 200).to_f) - Gosu.draw_quad( - 0, 0, @primary_color, - window.width, 0, @primary_color, - window.width, window.height, @accent_color, - 0, window.height, @accent_color - ) - if fraction_left <= 1.0 Gosu.draw_circle( window.width / 2, diff --git a/lib/states/game_states/loading_state.rb b/lib/states/game_states/loading_state.rb index cd5ccb3..1a0a334 100644 --- a/lib/states/game_states/loading_state.rb +++ b/lib/states/game_states/loading_state.rb @@ -34,7 +34,8 @@ class IMICFPS @completed_for_ms = 0 @lock = false - @base_color = Gosu::Color.rgb(0, 180, 180) + @primary_color = Gosu::Color.rgba(0, 180, 180, 200) + @accent_color = Gosu::Color.rgba(0, 90, 90, 200) end def draw @@ -115,9 +116,9 @@ class IMICFPS 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) + dark_color= Gosu::Color.rgb(@primary_color.red - 100, @primary_color.green - 100, @primary_color.blue - 100)#Gosu::Color.rgb(64, 127, 255) + color = Gosu::Color.rgb(@primary_color.red - 50, @primary_color.green - 50, @primary_color.blue - 50)#Gosu::Color.rgb(0,127,127) + color_two = Gosu::Color.rgb(@primary_color.red + 50, @primary_color.green + 50, @primary_color.blue + 50)#Gosu::Color.rgb(64, 127, 255) draw_rect(x, y-2, x + window.width/4, height+4, dark_color) diff --git a/lib/tools/asset_viewer/lib/main_menu.rb b/lib/tools/asset_viewer/lib/main_menu.rb index 6768f49..0e1f951 100644 --- a/lib/tools/asset_viewer/lib/main_menu.rb +++ b/lib/tools/asset_viewer/lib/main_menu.rb @@ -1,6 +1,7 @@ class IMICFPS class AssetViewerTool class MainMenu < CyberarmEngine::GuiState + include CommonMethods def setup window.needs_cursor = true @@ -31,6 +32,11 @@ class IMICFPS end end + def draw + menu_background(Menu::PRIMARY_COLOR, Menu::ACCENT_COLOR, Menu::BAR_COLOR_STEP, Menu::BAR_ALPHA, Menu::BAR_SIZE, Menu::BAR_SLOPE) + super + end + def update super diff --git a/lib/tools/map_editor/lib/main_menu.rb b/lib/tools/map_editor/lib/main_menu.rb index 5189c34..7044ddc 100644 --- a/lib/tools/map_editor/lib/main_menu.rb +++ b/lib/tools/map_editor/lib/main_menu.rb @@ -1,6 +1,8 @@ class IMICFPS class MapEditorTool class MainMenu < CyberarmEngine::GuiState + include CommonMethods + def setup window.needs_cursor = true @@ -35,6 +37,11 @@ class IMICFPS end end + def draw + menu_background(Menu::PRIMARY_COLOR, Menu::ACCENT_COLOR, Menu::BAR_COLOR_STEP, Menu::BAR_ALPHA, Menu::BAR_SIZE, Menu::BAR_SLOPE) + super + end + def update super diff --git a/lib/ui/menu.rb b/lib/ui/menu.rb index add5879..910308c 100644 --- a/lib/ui/menu.rb +++ b/lib/ui/menu.rb @@ -1,12 +1,21 @@ class IMICFPS class Menu < IMICFPS::GameState + PRIMARY_COLOR = Gosu::Color.rgba(255, 127, 0, 200) + ACCENT_COLOR = Gosu::Color.rgba(155, 27, 0, 200) + + BAR_SIZE = 50 + BAR_SLOPE = 250 + BAR_COLOR_STEP = 10 + BAR_ALPHA = 200 + def initialize(*args) @elements = [] - @size = 50 - @slope = 250 - @color_step = 10 - @base_color = Gosu::Color.rgb(255, 127, 0) - @background_alpha = 200 + @bar_size = BAR_SIZE + @bar_slope = BAR_SLOPE + @bar_color_step = BAR_COLOR_STEP + @bar_alpha = BAR_ALPHA + @primary_color = PRIMARY_COLOR + @accent_color = ACCENT_COLOR window.needs_cursor = true @__version_text = CyberarmEngine::Text.new("#{IMICFPS::NAME} v#{IMICFPS::VERSION} (#{IMICFPS::RELEASE_NAME})") @@ -15,7 +24,7 @@ class IMICFPS super(*args) end - def title(text, color = @base_color) + def title(text, color = Gosu::Color::BLACK) @elements << Text.new(text, color: color, size: 100, x: 0, y: 15) @_title = @elements.last end @@ -31,7 +40,7 @@ class IMICFPS end def draw - menu_background(@base_color, @color_step, @background_alpha, @size, @slope) + menu_background(@primary_color, @accent_color, @bar_color_step, @bar_alpha, @bar_size, @bar_slope) draw_menu_box draw_menu @@ -50,7 +59,7 @@ class IMICFPS draw_rect( window.width/4, 0, window.width/2, window.height, - Gosu::Color.rgba(0, 0, 0, 150), + Gosu::Color.new(0x22222222), ) end @@ -62,7 +71,7 @@ class IMICFPS def update @elements.each do |e| - e.x = window.width / 2 - e.width / 2 + e.x = (window.width / 2 - e.width / 2).round e.update end @@ -95,19 +104,17 @@ class IMICFPS def initialize(text, host, block) @text, @host, @block = text, host, block @color = @text.color - @hover_color = Gosu::Color.rgb(64, 127, 255) + @hover_color = Gosu::Color.rgb(64, 128, 255) + @text.shadow_color= Gosu::Color::BLACK + @text.shadow_size = 2 @text.shadow_alpha = 100 end def update if @host.mouse_over?(self) @text.color = @hover_color - @text.shadow_color= Gosu::Color::BLACK - @text.shadow_size = 3 else @text.color = @color - @text.shadow_color = nil - @text.shadow_size = 1 end end diff --git a/lib/window.rb b/lib/window.rb index 9599c3f..63a5d2b 100644 --- a/lib/window.rb +++ b/lib/window.rb @@ -1,5 +1,5 @@ class IMICFPS - class Window < CyberarmEngine::Engine + class Window < CyberarmEngine::Window attr_accessor :number_of_vertices, :needs_cursor attr_reader :renderer, :scene, :config