Class: Play

Inherits:
Chingu::GameState
  • Object
show all
Includes:
GamespacePersistence
Defined in:
lib/prkwars/play.rb

Overview

A class representing the game state of playing the game itself.

Constant Summary collapse

PLAYER_START_X =
800
PLAYER_START_Y =
640

Instance Method Summary collapse

Methods included from GamespacePersistence

#correct_coords, #in_bounds

Constructor Details

#initialize(options = {}) ⇒ Play

Initialization method of Play maps input to the exit function, creates a gamespace to play in and spawns the player. Together with that, sets up variables for enemy generation, score calculation and message displays.



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/prkwars/play.rb', line 20

def initialize(options = {})
  super(options)

  self.input = { esc: :exit }

  @gamespace = GameSpace.create(x: 1280 / 2, y: 720 / 2)
  @player = Player.create(@gamespace,
                          zorder: ZOrder::GAMEOBJECT,
                          x: PLAYER_START_X, y: PLAYER_START_Y)
  @gamespace.player = @player

  setup_enemy_generation
  setup_score_calculation
  setup_display_messages
end

Instance Method Details

#updateObject

Update loop does three major things each frame:

  • Collides enemies with player’s bullets and reduces their HP if possible.

  • Collides enemies with player’s ship and removes the player’s life if so.

  • Performs another step in the enemy unit generation.



42
43
44
45
46
47
48
# File 'lib/prkwars/play.rb', line 42

def update
  super
  collide_enemies_bullets
  collide_enemies_player

  generate_random_enemy
end