【问题标题】:exp system for python text RPGpython文本RPG的exp系统
【发布时间】:2020-01-05 23:57:04
【问题描述】:

我刚刚学习python,我一直在关注一本制作文本角色扮演游戏的书。我已经完成了这本书,现在我正在尝试从一些非常小的东西开始增加经验和升级。现在我有敌人使用 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))

这是我正在尝试使用的功能。它似乎没有从enemy.xp 获得输入 我也是堆栈溢出的新手 - 如果我可以发布整个代码文件,我会发布。

github链接:https://github.com/GusRobins60/pythonTextRPG

感谢您的帮助

【问题讨论】:

    标签: python python-3.x


    【解决方案1】:

    这是您当前使用的签名:

    def level_up(self):
    

    你抱怨

    它似乎没有从enemy.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
    

    【讨论】:

    • 感谢您的回复,我已经按照您的建议编辑了代码,将敌人包含在 def level_up(self,enemy) 中。我正在寻找它以在它发生后打印级别。你看到我错过了什么吗?我会按照你的建议调整其他代码我只想先解决这个问题。
    猜你喜欢
    • 2021-08-23
    • 2019-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-14
    • 1970-01-01
    相关资源
    最近更新 更多