curses
Python のライブラリを使用して、高校時代にプレイした TI-83 電卓ゲーム「Falldown」に似たゲームを作ろうとしています。永遠に落下するボールが穴を通り抜ける必要があり、穴にたどり着かないと、ボールは画面の上部で押しつぶされます (YouTube it)。
これまでのところ、まだ穴のない Obstacle クラスしかありません。障害物を永遠に「スクロールアップ」させたいだけです。1 つの障害 ( ) に対しては機能させることができますがobs1
、2 つ目の障害 ( ) を追加しようとするとobs2
、悪いことが起こります。以下のコードでは、両方の障害物が画面上に表示されていますが、2 つの障害物が重なり合っているため、1 つの障害物にしか見えません。
基本的に、画面の半分まで到達したobs2
ときにどのように開始できますか?obs1
#!/usr/bin/python
import curses
import time
import random
class obstacle:
def __init__(self):
self.pos = dims[0]-1
self.s = ''
for x in range(0,dims[1]-1):
self.s += '='
def scroll(self):
self.pos -= 1
screen = curses.initscr()
curses.start_color()
curses.init_pair(1, curses.COLOR_GREEN, curses.COLOR_BLACK)
screen.nodelay(1)
dims = screen.getmaxyx()
q=-1
obs1 = obstacle()
obs2 = obstacle()
while q < 0:
q = screen.getch()
if obs1.pos < 0:
obs1 = obstacle()
if obs2.pos < 0:
obs2 = obstacle()
screen.clear()
screen.addstr(obs1.pos, 0, obs1.s, curses.color_pair(1))
screen.addstr(obs2.pos, 0, obs2.s, curses.color_pair(1))
obs1.scroll()
obs2.scroll()
screen.refresh()
time.sleep(.04)
screen.getch()
curses.endwin()
最終的には、画面上に一度に約 4 つの障害物が必要になり、永遠に上にスクロールします。2から始めるためのヒントはありますか?