Class: RoadToRubykaigi::Manager::GameManager
- Inherits:
-
Object
- Object
- RoadToRubykaigi::Manager::GameManager
- Defined in:
- lib/road_to_rubykaigi/manager/game_manager.rb
Constant Summary collapse
- UPDATE_RATE =
1.0 / 10
- FRAME_RATE =
1.0 / 60
- GOAL_X =
{ 2025 => 650, 2026 => 800 }
- DEMO_GOAL_X =
540- STATE =
{ playing: 0, pause: 1, game_over: 2, ending: 3, finished: 4, }
Instance Attribute Summary collapse
-
#fireworks ⇒ Object
readonly
Returns the value of attribute fireworks.
Class Method Summary collapse
Instance Method Summary collapse
- #ending ⇒ Object
- #finish ⇒ Object
- #game_over ⇒ Object
- #game_over? ⇒ Boolean
- #increment_score ⇒ Object
- #offset_x ⇒ Object
- #render_result ⇒ Object
- #render_score_board ⇒ Object
- #result? ⇒ Boolean
- #update ⇒ Object
Instance Attribute Details
#fireworks ⇒ Object (readonly)
Returns the value of attribute fireworks.
15 16 17 |
# File 'lib/road_to_rubykaigi/manager/game_manager.rb', line 15 def fireworks @fireworks end |
Class Method Details
.goal_x ⇒ Object
17 18 19 |
# File 'lib/road_to_rubykaigi/manager/game_manager.rb', line 17 def self.goal_x @goal_x ||= RoadToRubykaigi.demo? ? DEMO_GOAL_X : GOAL_X[RoadToRubykaigi.version] end |
Instance Method Details
#ending ⇒ Object
62 63 64 65 |
# File 'lib/road_to_rubykaigi/manager/game_manager.rb', line 62 def ending @state = STATE[:ending] @fireworks.shoot end |
#finish ⇒ Object
67 68 69 |
# File 'lib/road_to_rubykaigi/manager/game_manager.rb', line 67 def finish @state = STATE[:finished] end |
#game_over ⇒ Object
54 55 56 |
# File 'lib/road_to_rubykaigi/manager/game_manager.rb', line 54 def game_over @state = STATE[:game_over] end |
#game_over? ⇒ Boolean
58 59 60 |
# File 'lib/road_to_rubykaigi/manager/game_manager.rb', line 58 def game_over? @state == STATE[:game_over] end |
#increment_score ⇒ Object
34 35 36 |
# File 'lib/road_to_rubykaigi/manager/game_manager.rb', line 34 def increment_score @score_board.increment end |
#offset_x ⇒ Object
21 22 23 |
# File 'lib/road_to_rubykaigi/manager/game_manager.rb', line 21 def offset_x (@player.x - Map::VIEWPORT_WIDTH / 2).clamp(0, @map.width - Map::VIEWPORT_WIDTH).to_i end |
#render_result ⇒ Object
42 43 44 45 46 47 48 |
# File 'lib/road_to_rubykaigi/manager/game_manager.rb', line 42 def render_result if game_over? @score_board.render_game_over_result else @score_board.render_clear_result end end |
#render_score_board ⇒ Object
38 39 40 |
# File 'lib/road_to_rubykaigi/manager/game_manager.rb', line 38 def render_score_board @score_board.render_score_board end |
#result? ⇒ Boolean
50 51 52 |
# File 'lib/road_to_rubykaigi/manager/game_manager.rb', line 50 def result? @state == STATE[:game_over] || @state == STATE[:finished] end |
#update ⇒ Object
25 26 27 28 29 30 31 32 |
# File 'lib/road_to_rubykaigi/manager/game_manager.rb', line 25 def update @deadline.activate(player_x: @player.x) @enemies.activate if player_moved? @score_board.start_timer if @player.x > Sprite::Player::WARMUP_END_X[RoadToRubykaigi.version] if @player.x >= GameManager.goal_x && EventDispatcher.publish(:ending) end end |