Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Unicode Modul einbinden
- require "unicode"
- require "debug"
- require "rubygems"
- gem "highline"
- require "highline"
- require "field"
- require "stone"
- module Tetris
- FPS = 25
- class << self
- def start
- # Set up the Signal trapping
- Signal.trap("INT") { self.stop }
- # Console should return chars immediately
- Field.clear_screen
- Field.hide_cursor
- Field.draw_border
- stone = Stone.new(Stone::SPRITES["S"])
- stone.y = 3
- stone.x = 3
- loop do
- if c = get_character_nonblock
- case c
- when ?B
- stone.move_down
- when ?D
- stone.rotate_left
- when ?C
- stone.rotate_right
- end
- end
- stone.draw
- Field.move_cursor(1, Field::HEIGHT)
- Field.write(Time.now)
- end
- end
- def stop
- HighLine::SystemExtensions.restore_mode
- Field.move_cursor(1, Field::HEIGHT)
- exit
- end
- def get_character_nonblock
- HighLine::SystemExtensions.raw_no_echo_mode
- begin
- if IO.select([STDIN], [], [], 1.0 / FPS)
- return $stdin.getc
- end
- ensure
- HighLine::SystemExtensions.restore_mode
- end
- end
- end
- end
Add Comment
Please, Sign In to add comment