Skip to content

Commit

Permalink
Move game loop into a class.
Browse files Browse the repository at this point in the history
  • Loading branch information
Jason Weathered, Nate Kane, and Odin Dutton authored and twe4ked committed Nov 17, 2012
1 parent 617ed0b commit 2c2ea5b
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 47 deletions.
49 changes: 2 additions & 47 deletions hrdlr.rb
@@ -1,49 +1,4 @@
$: << File.dirname(__FILE__) + '/lib'
require 'game'

require 'sprite'
require 'player'
require 'track'
require 'frame'

Frame.setup

track = Track.new(50, 15)
player = Player.new track
tick_count = 0

while true do
tick_count += 1

player.tick

frame = Frame.new 80, 6
viewport_x = player.x - 4
frame.draw 0, 0, Sprite.track_line
frame.draw 0, 5, Sprite.track_line
frame.draw player.x-viewport_x, 2-player.y, Sprite.player(player.state)
track.get_hurdles(viewport_x...viewport_x+80).each do |hurdle_x|
frame.draw hurdle_x-viewport_x, 4, Sprite.hurdle
end
if (0...32).cover?(tick_count)
frame.draw_center 1, 'HURDLURR!!!'
if tick_count % 8 >= 4
frame.draw_center 2, 'Press <Space> to jump!'
end
end
frame.render

sleep 0.1

begin
loop do
key = $stdin.read_nonblock(1).ord
case key
when 'q'.ord, 27, 3 # escape, ctrl-c
exit
when 32 # space
player.jump
end
end
rescue Errno::EAGAIN
end
end
Game.new.insert_coin
51 changes: 51 additions & 0 deletions lib/game.rb
@@ -0,0 +1,51 @@
require 'sprite'
require 'player'
require 'track'
require 'frame'

class Game
def insert_coin
Frame.setup

track = Track.new(50, 15)
player = Player.new track
tick_count = 0

while true do
tick_count += 1

player.tick

frame = Frame.new 80, 6
viewport_x = player.x - 4
frame.draw 0, 0, Sprite.track_line
frame.draw 0, 5, Sprite.track_line
frame.draw player.x-viewport_x, 2-player.y, Sprite.player(player.state)
track.get_hurdles(viewport_x...viewport_x+80).each do |hurdle_x|
frame.draw hurdle_x-viewport_x, 4, Sprite.hurdle
end
if (0...32).cover?(tick_count)
frame.draw_center 1, 'HURDLURR!!!'
if tick_count % 8 >= 4
frame.draw_center 2, 'Press <Space> to jump!'
end
end
frame.render

sleep 0.1

begin
loop do
key = $stdin.read_nonblock(1).ord
case key
when 'q'.ord, 27, 3 # escape, ctrl-c
exit
when 32 # space
player.jump
end
end
rescue Errno::EAGAIN
end
end
end
end

0 comments on commit 2c2ea5b

Please sign in to comment.