Class: GamesAndRpgParadise::GardenHero::Level

Inherits:
Object
  • Object
show all
Defined in:
lib/games_and_rpg_paradise/gui/gosu/garden_hero/core/level/level.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(window) ⇒ Level

#

initialize

#


18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/games_and_rpg_paradise/gui/gosu/garden_hero/core/level/level.rb', line 18

def initialize(window)
  @window = window
  @num = 1
  @map = Gosu::Image.new window, "images/maps/level#{@num}.png", true
  @scoreboard = Gosu::Image.new window, "images/maps/scoreboard.png", true
  @ui = Gosu::Font.new(window, 'Monospace', 20)
  @game_over_ui = Gosu::Font.new(window, 'Monospace', 30)
  @game_over = false
  @player = Player.new window
  @generator = LevelGenerator.new @num, @window
  @generator.start_point @player
  @stars = @generator.generate_stars
  @apples = @generator.generate_apples
  @enemies = @generator.generate_enemies
end

Instance Attribute Details

#applesObject (readonly)

Returns the value of attribute apples.



34
35
36
# File 'lib/games_and_rpg_paradise/gui/gosu/garden_hero/core/level/level.rb', line 34

def apples
  @apples
end

#enemiesObject (readonly)

Returns the value of attribute enemies.



34
35
36
# File 'lib/games_and_rpg_paradise/gui/gosu/garden_hero/core/level/level.rb', line 34

def enemies
  @enemies
end

#game_overObject

Returns the value of attribute game_over.



13
14
15
# File 'lib/games_and_rpg_paradise/gui/gosu/garden_hero/core/level/level.rb', line 13

def game_over
  @game_over
end

#numObject (readonly)

Returns the value of attribute num.



34
35
36
# File 'lib/games_and_rpg_paradise/gui/gosu/garden_hero/core/level/level.rb', line 34

def num
  @num
end

#starsObject (readonly)

Returns the value of attribute stars.



34
35
36
# File 'lib/games_and_rpg_paradise/gui/gosu/garden_hero/core/level/level.rb', line 34

def stars
  @stars
end

#windowObject (readonly)

Returns the value of attribute window.



34
35
36
# File 'lib/games_and_rpg_paradise/gui/gosu/garden_hero/core/level/level.rb', line 34

def window
  @window
end

Instance Method Details

#drawObject

draw



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/games_and_rpg_paradise/gui/gosu/garden_hero/core/level/level.rb', line 50

def draw
  @map.draw 0, 0, 0
  @scoreboard.draw 0, 480, 0
  @stars.each do |s|
    s.draw
  end
  @apples.each { |a|
    a.draw
  }
  @enemies.each { |e|
    e.draw
  }
  @player.draw
  @ui.draw_text("Level #{@num}", 300, 484, 1)
  @game_over_ui.draw("PAUSE", 276, 220, 2) if window.pause
  @game_over_ui.draw("GAME OVER", 240, 220, 2) if game_over
end

#go_next_levelObject

go next level



37
38
39
40
41
42
43
44
45
46
47
# File 'lib/games_and_rpg_paradise/gui/gosu/garden_hero/core/level/level.rb', line 37

def go_next_level
  if @num <= 1
    @num += 1
    @map = Gosu::Image.new @window, "images/maps/level#{@num}.png", true
    @generator = LevelGenerator.new @num, @window
    @generator.start_point @player
    @stars = @generator.generate_stars
    @apples = @generator.generate_apples
    @enemies = @generator.generate_enemies
  end
end

#updateObject

update



69
70
71
72
73
74
75
76
77
# File 'lib/games_and_rpg_paradise/gui/gosu/garden_hero/core/level/level.rb', line 69

def update
  if game_over == false
    @player.move
    @enemies.each { |e|
      e.move
    }
    go_next_level if stars.empty?
  end
end