【问题标题】:Python Text Based Game Display基于 Python 文本的游戏显示
【发布时间】:2012-09-30 05:01:17
【问题描述】:

我正在尝试用 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()

有人知道这是什么原因吗?我们将不胜感激所有帮助。

【问题讨论】:

    标签: python console char python-idle


    【解决方案1】:

    您在绘制后立即清除屏幕,而不是在绘制之前。这样,你刚才画的东西就被抹掉了。

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

    尝试切换顺序:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-04
      • 1970-01-01
      • 2014-06-13
      • 1970-01-01
      • 1970-01-01
      • 2021-06-25
      • 1970-01-01
      • 2013-07-08
      相关资源
      最近更新 更多