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 =
650- 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 end |
Instance Method Details
#ending ⇒ Object
61 62 63 64 |
# File 'lib/road_to_rubykaigi/manager/game_manager.rb', line 61 def ending @state = STATE[:ending] @fireworks.shoot end |
#finish ⇒ Object
66 67 68 |
# File 'lib/road_to_rubykaigi/manager/game_manager.rb', line 66 def finish @state = STATE[:finished] end |
#game_over ⇒ Object
53 54 55 |
# File 'lib/road_to_rubykaigi/manager/game_manager.rb', line 53 def game_over @state = STATE[:game_over] end |
#game_over? ⇒ Boolean
57 58 59 |
# File 'lib/road_to_rubykaigi/manager/game_manager.rb', line 57 def game_over? @state == STATE[:game_over] end |
#increment_score ⇒ Object
33 34 35 |
# File 'lib/road_to_rubykaigi/manager/game_manager.rb', line 33 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
41 42 43 44 45 46 47 |
# File 'lib/road_to_rubykaigi/manager/game_manager.rb', line 41 def render_result if game_over? @score_board.render_game_over_result else @score_board.render_clear_result end end |
#render_score_board ⇒ Object
37 38 39 |
# File 'lib/road_to_rubykaigi/manager/game_manager.rb', line 37 def render_score_board @score_board.render_score_board end |
#result? ⇒ Boolean
49 50 51 |
# File 'lib/road_to_rubykaigi/manager/game_manager.rb', line 49 def result? @state == STATE[:game_over] || @state == STATE[:finished] end |
#update ⇒ Object
25 26 27 28 29 30 31 |
# File 'lib/road_to_rubykaigi/manager/game_manager.rb', line 25 def update @deadline.activate(player_x: @player.x) @enemies.activate if player_moved? if @player.x >= GameManager.goal_x && EventDispatcher.publish(:ending) end end |