Class: Pugnacious::FightScene

Inherits:
Ray::Scene
  • Object
show all
Defined in:
lib/pugnacious/fight_scene.rb

Instance Method Summary collapse

Instance Method Details

#clean_upObject



73
74
75
76
77
78
79
80
81
# File 'lib/pugnacious/fight_scene.rb', line 73

def clean_up
  @players.each do |player|
    player = nil
  end

  @players = nil

  Ray::ImageSet.clear
end

#registerObject



56
57
58
59
60
61
62
63
64
65
66
# File 'lib/pugnacious/fight_scene.rb', line 56

def register
  always do
    @players.each do |player|
      player.control_keys.each do |direction|
        if holding? direction then player.move direction end
      end
    end

    @molecules.each &:move
  end
end

#render(window) ⇒ Object



68
69
70
71
# File 'lib/pugnacious/fight_scene.rb', line 68

def render(window)
  @molecules.each { |molecule| window.draw molecule.body}
  @players.each { |player| window.draw player.pointer }
end

#setupObject



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/pugnacious/fight_scene.rb', line 5

def setup
  @gc_counter = 0
  #self.frames_per_second = 5
  @player1 = Player.new(
    color: Ray::Color.blue,
    position: [0, 0],
    control_keys: [:up, :right, :down, :left])

  @player2 = Player.new(
    color: Ray::Color.red,
    position: [0, 0],
    control_keys: [:w, :d, :s, :a])

  @player2.pointer.pos = [300, 300]
  @player1.pointer.pos = [400, 300]

  @game_map = GameMap.generate_empty_map(MAP_SIZE, MAP_SIZE)

  @molecules = []

  @game_map.size.times do |i|
    @molecules << Molecule.new(
      :player    => @player1,
      :rival     => @player2,
      :molecules => @molecules,
      :pos       => [i,10],
      :map       => @game_map)
    @molecules << Molecule.new(
      :player    => @player1,
      :rival     => @player2,
      :molecules => @molecules,
      :pos       => [i,11],
      :map       => @game_map)

    @molecules << Molecule.new(
      :player    => @player2,
      :rival     => @player1,
      :molecules => @molecules,
      :pos       => [i,72],
      :map       => @game_map)
    @molecules << Molecule.new(
      :player    => @player2,
      :rival     => @player1,
      :molecules => @molecules,
      :pos       => [i,75],
      :map       => @game_map)
  end

  @players = [@player1, @player2]
end