Python用类继承实现角色升级时反复重置为1级的问题排查
Python回合制桌面RPG升级逻辑及子类引用异常问题
现有项目实现基础
- 游戏基于Python开发,为经典回合制桌面角色扮演类型
- 集成自定义
Dice随机模块,通过实例化d10、d4、d20骰子对象,调用die_roll()方法生成判定所需的随机数值 - 定义基类
Player_Character,统一封装玩家HP、MaxHP、AC、Exp等核心属性,内置attack、flee、heal等通用玩家行为方法 - 设计
FighterLvl1、FighterLvl2、FighterLvl3三个战士职业子类,均继承自Player_Character基类 - 原定升级实现思路:在
LevelUp方法中直接修改全局玩家实例MrHezy的所属类,以此完成从初始Player_Character状态,到FighterLvl1,再依次递进切换为FighterLvl2、FighterLvl3的等级迭代流程 - 已验证正常运行的模块:完整回合战斗流程可正常流转,击杀怪物后的经验、金币获取速率完全符合预期设计
现存待解决的逻辑异常
- 升级逻辑死循环:击杀哥布林(goblin)后,当累计经验达到升级阈值,程序会连续触发升级提示,玩家实例被反复重置为
FighterLvl1对象,无法正常递进升级到2级、3级 - IDE静态检查报错:提示
FighterLvl1类存在「未解析的Exp属性引用」的异常提示 - 生效逻辑存疑:无法确认子类中重写的
attack方法,能否在类替换操作执行后正常被调用生效
内容的提问来源于stack exchange,提问作者Hezekiah Bodine
相关产品推荐
相关产品推荐

