作为我的个人项目,我正在制作一个完全用 python 制作的(半功能性)视频游戏。唯一的问题是我似乎经常遇到在 VS code 内使用终端的问题。当前的问题是终端在返回测试值 1 后似乎就冻结了。
import time
import random
buildVer = 0.1
playerHealth = 5
enemyHealth = 1
encounterAcitve = 0
welcomeComplete = 0
def anyKey():
input("Press any key to continue...")
def welcome():
print("~Project by Broclly~")
print("")
print("")
time.sleep(1/4)
print("Greetings, welcome to Rogue.py!")
time.sleep(1/4)
print("This project is to test the limits of using Python as a game engine!")
time.sleep(1/4)
print("Current Build Version:", buildVer)
anyKey()
def enemyTurn():
enemyHit = random.randint(0,2)
playerHealth = playerHealth - enemyHit
print("You were hit for", enemyHit, "damage!")
def playerTurn():
playerHit = random.randint(0,1)
enemyHealth = enemyHealth - playerHit
print("You hit the enemy for", playerHit, "damage!")
def check():
if playerHealth <= 0:
print("You died! Try again :(")
time.sleep(1)
def enemyEncounter():
while encounterAcitve == 1:
enemyTurn()
playerTurn()
while playerHealth > 0:
while welcomeComplete == 0:
welcome()
welcomeComplete = 1
print(welcomeComplete)
enemyEncounter()
我希望这会运行一堆计算,并打印多条消息,但它似乎只返回我添加的测试值 1,以确保“welcomeComplete”变量正在工作。
程序“粘”在最后一行:
while playerHealth > 0: ... enemyEncounter()
,因为函数 enemyEncounter
立即返回:
while encounterAcitve == 1:
之前的所有内容都会起作用,但在它之后就不会了,因为没有给出条件(参见l.7:encounterAcitve = 0
)。
当您在
print("hello")
之后添加类似 def enemyEncounter:
之类的内容时,它会在终端中为您提供许多 hello
。
PS:你是故意叫它
encounterAcitve
,还是应该叫encounterActive
?