我正在编写一个应该在控制台中运行的python游戏。这是迄今为止的代码:
#!python
import getpass
a = ""
rv = ""
playerLoc = []
meU= 0
meD= 0
meL= 0
meR= 0
# rv is used as a spae taker.
# The Me... variables are used to store the players location, MeU is up, meD is down, so on so forth.
while a != "q":
a = getpass.getpass("")
if a=="w":
meU = meU + 1
elif a=="a":
meL = meL + 1
elif a=="d":
meR = meR + 1
elif a=="s":
meD = meD + 1
elif a=="q":
rv = ""
elif a=="":
rv = ""
elif a==" ":
rv = ""
else:
print "%Not A Command%"
while a !="q":
playerLoc.append(meU)
playerLoc.append(meD)
playerLoc.append(meL)
playerLoc.append(meR)
我想知道如何在屏幕上的网格中显示玩家坐标。注意我没有使用curses或PyGame。我研究了这个主题,找不到任何答案。请记住,这不是一个GUI游戏,而是在控制台中。我希望图形像蛇或入侵者或类似的东西。我希望这可以帮助其他人解决同样的问题。我使用getpass模块进行隐形WASD按下,尽管他们确实按下了回车键。我尝试使用星号'*'作为角色,并遇到另一个问题,即如何在整个屏幕上动态移动播放器。我研究了这个2周,但没有找到任何答案。
答案 0 :(得分:2)
注意我没有使用curses或PyGame
你应该开始。 curses
正是您所需要的。除非您知道用户使用的终端类型,否则无法在屏幕底部的任何位置可靠地打印文本。如果您确实知道用户具有哪个终端,您可以使用控制代码和转义序列,但使用curses
仍然有用,因为它为您提供了一种更好的处理方式。
答案 1 :(得分:0)
在制作刽子手游戏时我做了类似的事情,唯一的区别是你需要在屏幕上的某个位置显示一个X字符。您可以使用2D数组来概述“屏幕”上的内容
首先,如果你在Windows上,你应该在draw()方法的开头调用os.system('cls')
你应该连续调用(在你的while循环中),然后你将打印整个2d阵列到屏幕。
2,如果您使用2D数组来表示地图,那么原点通常位于左上角,这意味着您的位置将全部为正数,更高的x数字将位于屏幕右侧,更高的y数字将在屏幕的底部。
3,当用户输入密钥时,可能来自input()
或raw_input()
,具体取决于您的python版本,您希望在2d数组中向左或向右移动其位置
让我知道你想要什么帮助,我可以详细说明