用于python文本RPG的exp系统

问题描述 投票:0回答:1

我只是在学习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

感谢您的帮助

python python-3.x rpg
1个回答
0
投票

这里是您当前正在使用的签名:

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
© www.soinside.com 2019 - 2024. All rights reserved.