2012-09-30 86 views
1

我想在Python中編寫基於文本的遊戲,但遇到了問題。我的角色在控制檯中從一個位置移動到另一個位置,但每次用戶按下某個鍵時,角色都會消失。爲了再次看到角色,用戶必須按下一個鍵。這裏是我的代碼:Python基於文本的遊戲顯示

import os 
import msvcrt 

class Frog: 
    X = 0 
    Y = 0 

    def __init__(self, x, y): 
      self.X = x 
      self.Y = y 

    def Draw(self): 
      for y in range(self.Y): 
        print "" 
      print ' ' * self.X + '#' 



    def Update(self): 
      if msvcrt.kbhit() == True: 
        if msvcrt.getch() == 'a': 
          if self.X > 0: 
            self.X = self.X - 1 
        if msvcrt.getch() == 'd': 
            self.X = self.X + 1 
        if msvcrt.getch() == 'w': 
            self.Y = self.Y - 1 
        if msvcrt.getch() == 's': 
            self.Y = self.Y + 1 






frog = Frog(0,0) 


def Draw(): 
    frog.Draw() 
    os.system('cls') 

def Loop(): 

    while 1:  

        frog.Update() 
        Draw() 



Loop() 

有沒有人知道是什麼原因造成的?所有的幫助將不勝感激。

回答

2

您在繪製後立即清除屏幕,而不是在繪製之前清除屏幕。因此,你剛畫的東西被抹去了。

def Draw(): 
    frog.Draw() 
    os.system('cls') 

嘗試切換順序:

def Draw(): 
    os.system('cls') 
    frog.Draw()