2017-11-10 3 views
0

so verwende ich diesen Code:XP/Level Punkte in Python Spiel

def level(): 
lvl = 1 
xp = 0 
lvlNext = 50 

while xp >= lvlNext: 
    lvl += 1 
    xp = xp - lvlNext 
    lvlNext = round(lvlNext * 1.5) 

print ('level', lvl) 
print ('Exp:', xp) 
print ('Next:', lvlNext) 

return 

das einzige Problem ist, dass ich nicht sicher bin, wie die Punkte gelten die Spieler in die Handlung bekommen wählten sie so ausführen zum Beispiel:

elif choice== "use comb on hair": 
    if "comb" in inventory: 
     print ("You brushed your bald head. Satisfying.") 
    elif "comb" not in inventory: 
     print ("You don't own this item in your inventory.") 

ich sollte der Spieler bekommt 15 Punkte lassen, wenn sie diese ausführen, aber ich weiß nicht, wie.

+0

Diese mit vielen möglichen Lösungen eine sehr breit und eher eine strukturelle Frage. Abhängig davon, wie Sie xp speichern? Wie werden Aktionen ausgeführt? Was ist der allgemeine Umfang deines Spiels? mit mehreren Objekten oder einfach sequentiellem Text? – voiDnyx

Antwort

0

Lesen Sie den += Operator.

elif choice== "use comb on hair": 
    if "comb" in inventory: 
     print ("You brushed your bald head. Satisfying.") 
     xp += 15 
    elif "comb" not in inventory: 
     print ("You don't own this item in your inventory.") 

+ = eine Abkürzung für das Schreiben ist:

xp = 1 
xp = xp + 1 
print (xp) # 2 
+0

Ich bin mir nicht sicher, aber dieser Fehler tritt auf, wenn ich die xp + = 15 UnboundLocalError: lokale Variable 'XP' vor der Zuweisung verwiesen – John

0

auf Klassen Informieren Sie sich, werden sie sich als nützlich.

definieren:

class XPLevel(object): 
    def __init__(self): 
     XP = 0 
    def (your function from the question): 
     ... 

class Player(object): 
    def __init__(self): 
     self.level = XPLevel() 

    def SomeActionWhatGivesXP(self, amount=1): 
     self.level.XP += amount