cursesPython のライブラリを使用して、高校時代にプレイした 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から始めるためのヒントはありますか?