#!/usr/koeki/bin/ruby
# -*- coding: utf-8 -*-
# Ruby1.9 Ready
# cursesを用いて●を動かす
require 'curses'
include Curses
noecho # エコーバックなし
cbreak # Returnなしで即入力
Curses.timeout = 0 # 入力は待たない
init_screen # 画面も消える
ball = "●"
kesu = " "
wait = 0.03 # タイマー
x = 0
y = lines-2 # 下から2行目
j = 0 # ジャンプの高さ
jmax = 6 # 2ステップ分高度をあげる
jnow = 0 # 現在のステップ(0〜3)
setpos(1, 0)
addstr("SPCでジャンプ!")
setpos(y-5, cols/2+rand(3)) # ランダムに決めた位置に
addstr("★") # ★を置く
begin
h = y-1 # 高さの初期値をセットしておく
while x < cols # 右から左へ
setpos(h, x-1) # カーソルを今の位置へ
addstr(kesu) # 前のボールを消す
x += 1
h = y-1 - ((jmax-jnow)*jnow/2) # ジャンプは2次曲線
setpos(h, x-1) # カーソルを次の位置へ
addstr(ball) # ボールを書く
setpos(0,0) # カーソルを邪魔でないところへ
refresh # これをしないと画面に反映されない
if jnow > 0 then
jnow -= 1 # ジャンプ中の処理
getch # ジャンプ中に押されたキーは捨てる
else
key = getch
if key == " "[0] # SPCだったら
jnow = jmax # ジャンプ開始
end
end
sleep(wait) # 一定時間休む
end
setpos(y-1, 0)
addstr("おしまい\n")
refresh # 最後も忘れずに
sleep 3
ensure
close_screen
end