From 676545f3c7ae50f3d6eb4cbd0efdc53d16c23573 Mon Sep 17 00:00:00 2001 From: Cyberarm Date: Mon, 19 Apr 2021 14:42:49 +0000 Subject: [PATCH] Added wip engine intro state --- lib/cyberarm_engine.rb | 2 + lib/cyberarm_engine/builtin/intro_state.rb | 55 ++++++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 lib/cyberarm_engine/builtin/intro_state.rb diff --git a/lib/cyberarm_engine.rb b/lib/cyberarm_engine.rb index b040af1..daa0dff 100644 --- a/lib/cyberarm_engine.rb +++ b/lib/cyberarm_engine.rb @@ -61,3 +61,5 @@ require_relative "cyberarm_engine/model/model_object" require_relative "cyberarm_engine/model/parser" require_relative "cyberarm_engine/model/parsers/wavefront_parser" require_relative "cyberarm_engine/model/parsers/collada_parser" if defined?(Nokogiri) + +require_relative "cyberarm_engine/builtin/intro_state" diff --git a/lib/cyberarm_engine/builtin/intro_state.rb b/lib/cyberarm_engine/builtin/intro_state.rb new file mode 100644 index 0000000..83f4702 --- /dev/null +++ b/lib/cyberarm_engine/builtin/intro_state.rb @@ -0,0 +1,55 @@ +module CyberarmEngine + class IntroState < CyberarmEngine::GameState + def setup + @title_size = 56 + @caption_size = 24 + + @title = CyberarmEngine::Text.new("", size: @title_size) + @caption = CyberarmEngine::Text.new("", size: @caption_size) + + @spacer_width = 256 + + @cyberarm_engine_logo = generate_proxy("CyberarmEngine", "Powered By") + + @gosu_logo = generate_proxy("Gosu", "Game Library") + @ruby_logo = generate_proxy("Ruby", "Programming Language") + @sdl2_logo = generate_proxy("SDL2", "Simple DirectMedia Layer") + end + + def draw + Gosu.draw_rect(0, 0, window.width, window.height, 0xff_222222) + + @cyberarm_engine_logo.draw(window.width / 2 - @cyberarm_engine_logo.width / 2, window.height / 2 - @cyberarm_engine_logo.height, 2) + + @gosu_logo.draw(6, window.height - @gosu_logo.height - 6, 2) + @ruby_logo.draw(window.width / 2 - @ruby_logo.width / 2, window.height - @ruby_logo.height - 6, 2) + @sdl2_logo.draw(window.width - (@sdl2_logo.width + 6), window.height - @sdl2_logo.height - 6, 2) + end + + def update + end + + def generate_proxy(title, caption) + @title.text = title + @caption.text = caption + + padding = 6 + spacer_height = 6 + + width = @spacer_width + 2 * padding + height = @title_size + @caption_size + spacer_height + 2 * padding + spacer_height + + Gosu.record(width.ceil, height.ceil) do + @title.x = (width - padding * 2) / 2 - @title.width / 2 + @title.y = padding + @title.draw + + Gosu.draw_rect(0, padding + @title_size + padding, @spacer_width, spacer_height, Gosu::Color::WHITE) + + @caption.x = (width - padding * 2) / 2 - @caption.width / 2 + @caption.y = padding + @title_size + padding + spacer_height + padding + @caption.draw + end + end + end +end \ No newline at end of file