我只是在学习python,我一直在读一本书以制作文本RPG。我已经完成了本书的学习,现在尝试从很小的东西开始增加经验和提高水平。现在,我有一些敌人使用random.randint()函数提供了随机的经验,我可以使它很好地显示,但是我似乎无法将其转化为玩家等级,然后升级功能。
def level_up(self):
self.xp = self.xp + enemy.xp
while self.xp >= self.lvlNext:
self.lvl += 1
self.xp = self.xp - self.lvlNext
self.lvlNext = round(self.lvlNext * 1.5)
print("Congatulations your level {}".format(self.lvl))
这是我正在尝试使用的功能。它似乎并没有从敌人.xp获得输入我也是堆栈溢出的新手-如果可以发布整个代码文件,我会的。
github链接:https://github.com/GusRobins60/pythonTextRPG
感谢您的帮助
这里是您当前正在使用的签名:
def level_up(self):
您抱怨
似乎没有从敌人.xp获得输入。
您想将enemy
作为参数传递:
def level_up(self, enemy):
作为一个完全独立的问题,可以说self.xp = self.xp + enemy.xp
,但最好更简洁地说:
self.xp += enemy.xp
并且类似地表示
self.xp -= self.lvlNext
编辑
也许您会想以此方式导出enemy
:
room = world.tile_at(self.x, self.y)
enemy = room.enemy
值得将其包装为辅助功能:
def get_enemy(x, y):
room = world.tile_at(x, y)
return room.enemy