簡體   English   中英

清除python中基於文本的rpg的屏幕

[英]Clearing the screen for text based rpg in python

我正在嘗試在 python 中制作一個基於文本的 rpg 游戲。 我剛剛開始,這是我的代碼到目前為止的樣子:

class Game:
    def __init__(self):
        self.map = [[" " for i in range(50)]for i in range(30)]

    def draw_map(self):
        for i in range(len(self.map)):
            print(self.map[i])


    def add_stuff(self, thing, x, y):
        self.map[y][x] = thing

game = Game()

class Player:
    def __init__(self):
        self.x = 1
        self.y = 1
        self.player = "ME"

    def draw(self):
        game.add_stuff(self.player, self.x, self.y)

    def move(self):
        pass

player = Player()
player.draw()
game.draw_map()

我試圖找到一種以某種方式實現游戲循環的方法。 為此,我想運行draw_map()並立即清除屏幕並再次打印地圖,有點像真正的游戲循環。 但是,我在執行此操作時遇到問題。 基於對其他類似問題的其他答案,我設法生成了以下代碼(它只顯示主循環和子進程作為 sp 導入)。

while True:
    game.draw_map()
    sp.call("cls", shell = True)

然而,這對我不起作用。 它只是不做任何事情。 我還嘗試以類似的方式使用 clear_screen` 模塊中的clear函數,但我無法弄清楚為什么這不起作用。 謝謝你的幫助

因此,根據您之前的評論,您希望在 Python 解釋器中清除屏幕。 沒有像這樣清除屏幕的“命令”。 但是您可以使用循環來打印一些新行,直到您的屏幕再次變為空白。

def clear(lines):
    for l in range(lines):
        print()

while True:
    game.draw_map()
    clear(35)
    time.sleep(0.05)

您可能需要增加或減少清除的行數。 我希望這對你有用。 PS:我會使用普通的控制台。

https://en.wikipedia.org/wiki/Interpreter_(計算)#效率

效率:解釋器的主要缺點是解釋程序的運行速度通常比編譯程序慢。 速度的差異可能很小也可能很大; 通常是一個數量級,有時甚至更多。 在解釋器下運行程序通常比運行編譯后的代碼需要更長的時間,但解釋它所需的時間可能比編譯和運行它所需的總時間要少。 當編輯-解釋-調試周期通常比編輯-編譯-運行-調試周期短得多時,這在原型設計和測試代碼時尤為重要。

如果您的問題是清除控制台窗口,則可以使用

import os

os.system('cls')

代替

sp.call("cls", shell = True)

(假設您在 Windows 上工作)

為清楚起見編輯:

這是更改后的新循環:

while True:
game.draw_map()
os.system('cls')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM