基于Python文本的游戏显示

标签 python console char python-idle

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

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

最佳答案

绘图后立即清除屏幕,而不是绘图前。这样,你刚刚画的东西就被删除了。

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

尝试切换顺序:

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

关于基于Python文本的游戏显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12658779/

相关文章:

c - 为 shell 程序标记 char*

python - 在 numpy 中禁用静默转换

c - 分配仅在释放时失败

ruby - 无法运行 ruby​​ 脚本/控制台

c - 在 C 中打印字符数组

c++ - char* 与 const char* (再次!!!)

找不到 Python 模块 "cx_Oracle"模块

python - 如何使用 pgdb.executemany?

python - 用于打印日期的 django 时区

ruby-on-rails - 在 Rails 控制台中使用 fixture finder helpers