我正在用Python创建一个文本冒险游戏,让我自己开始,因为我还不擅长Python。我试图实施一套健康规则:
while True:
if health == maxHealth:
playerAtMaxHealth = True;
elif health > maxHealth:
health = maxHealth;
elif health < 0:
health = 0
elif health == 0:
playerDead = True;
以下是我的其余代码:
def startUp():
StartPRINT("""╔═══╗
║╔══╝
║╚══╦══╦══╦══╦══╦══╗
║╔══╣══╣╔═╣╔╗║╔╗║║═╣
║╚══╬══║╚═╣╔╗║╚╝║║═╣
╚═══╩══╩══╩╝╚╣╔═╩══╝
─────────────║║
─────────────╚╝ \n""")
global gold
global health
global inventory
global berryCollected;
global maxHealth;
global playerAtMaxHealth;
global playerDead
berryCollected = False;
playerAtMaxHealth = True;
playerDead = False
gold = 0
health = 30
maxHealth = 30
inventory = []
time.sleep(2)
while True:
if health == maxHealth:
playerAtMaxHealth = True;
elif health > maxHealth:
health = maxHealth;
elif health < 0:
health = 0
elif health == 0:
playerDead = True;
forest()
基本上会发生的事情是它会打印出开始文本,但之后它会卡在while循环中并且不会移动到forest()上。
答案 0 :(得分:0)
我不知道你是否考虑过这个问题,但是以面向对象的方式做这件事可能会更好。所以,让英雄或玩家作为班级,他的属性是黄金,健康。等等。然后你就可以轻松拥有一个可以在战斗或互动后运行的功能,以检查玩家是否还活着
答案 1 :(得分:0)
请勿使用true来覆盖健康规则。 所以,如果你想检查播放器的健康状况是这样的.. 虽然如此 森林()//也许和怪物打架 //健康检查就在这里......
在森林中采取一些行动后,它会做健康检查.... 如果你写得像你的那样只会陷入健康检查
答案 2 :(得分:0)
您可以简单地将while循环包装在一个线程中。然后启动线程,它不会更改代码的其他结构。
在Python中创建线程非常简单。您需要导入threading
然后,您可以使用threading.Thread()
函数创建一个线程
您可以根据需要创建任意数量的线程,只需使用start()
函数启动它们即可。它们都会在不干扰您的代码的情况下执行。
有关python线程的更多详细信息,请参阅此threading example of python。