[英]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.