module Snake2d

Constants

GRID_HEIGHT
GRID_WIDTH
SQUARE_SIZE
VERSION

Public Class Methods

run() click to toggle source
# File lib/snake2d.rb, line 126
def self.run
  Window.set background: 'navy'
  Window.set fps_cap: 20
  
  snake = Snake.new
  game = Game.new
  
  Window.update do
    Window.clear
  
    unless game.finished?
      snake.move
    end
  
    snake.draw
    game.draw
  
    if game.snake_hit_ball?(snake.x, snake.y)
      game.record_hit
      snake.grow
    end
  
    if snake.hit_itself?
      game.finish
    end
  end
  
  Window.on :key_down do |event|
    if ['up', 'down', 'left', 'right'].include?(event.key)
      if snake.can_change_direction_to?(event.key)
        snake.direction = event.key
      end
    end
  
    if game.finished? && event.key == 'r'
      snake = Snake.new
      game = Game.new
    end
  end
  
  Window.show
end