从列表python中读取位置

时间:2013-06-26 15:57:47

标签: python console

我正在编写一个应该在控制台中运行的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周,但没有找到任何答案。

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数组中向左或向右移动其位置

让我知道你想要什么帮助,我可以详细说明