Class: Level
- Inherits:
-
Object
- Object
- Level
- Defined in:
- lib/games_paradise/gui/gosu/garden_hero/core/level/level.rb
Overview
#
Level - main game logic class
#
Instance Attribute Summary collapse
-
#apples ⇒ Object
readonly
Returns the value of attribute apples.
-
#enemies ⇒ Object
readonly
Returns the value of attribute enemies.
-
#game_over ⇒ Object
Returns the value of attribute game_over.
-
#num ⇒ Object
readonly
Returns the value of attribute num.
-
#stars ⇒ Object
readonly
Returns the value of attribute stars.
-
#window ⇒ Object
readonly
Returns the value of attribute window.
Instance Method Summary collapse
-
#draw ⇒ Object
draw.
-
#go_next_level ⇒ Object
go next level.
-
#initialize(window) ⇒ Level
constructor
# === initialize ========================================================================= #.
-
#update ⇒ Object
update.
Constructor Details
#initialize(window) ⇒ Level
#
initialize
#
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/games_paradise/gui/gosu/garden_hero/core/level/level.rb', line 14 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
#apples ⇒ Object (readonly)
Returns the value of attribute apples.
30 31 32 |
# File 'lib/games_paradise/gui/gosu/garden_hero/core/level/level.rb', line 30 def apples @apples end |
#enemies ⇒ Object (readonly)
Returns the value of attribute enemies.
30 31 32 |
# File 'lib/games_paradise/gui/gosu/garden_hero/core/level/level.rb', line 30 def enemies @enemies end |
#game_over ⇒ Object
Returns the value of attribute game_over.
9 10 11 |
# File 'lib/games_paradise/gui/gosu/garden_hero/core/level/level.rb', line 9 def game_over @game_over end |
#num ⇒ Object (readonly)
Returns the value of attribute num.
30 31 32 |
# File 'lib/games_paradise/gui/gosu/garden_hero/core/level/level.rb', line 30 def num @num end |
#stars ⇒ Object (readonly)
Returns the value of attribute stars.
30 31 32 |
# File 'lib/games_paradise/gui/gosu/garden_hero/core/level/level.rb', line 30 def stars @stars end |
#window ⇒ Object (readonly)
Returns the value of attribute window.
30 31 32 |
# File 'lib/games_paradise/gui/gosu/garden_hero/core/level/level.rb', line 30 def window @window end |
Instance Method Details
#draw ⇒ Object
draw
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/games_paradise/gui/gosu/garden_hero/core/level/level.rb', line 46 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_level ⇒ Object
go next level
33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/games_paradise/gui/gosu/garden_hero/core/level/level.rb', line 33 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 |
#update ⇒ Object
update
65 66 67 68 69 70 71 72 73 |
# File 'lib/games_paradise/gui/gosu/garden_hero/core/level/level.rb', line 65 def update if game_over == false @player.move @enemies.each { |e| e.move } go_next_level if stars.empty? end end |