android游戏中 主角升级该怎么处理

时间:2022-06-29 14:59:49
RT:
android游戏中,主角升级该怎么处理?是在主角(Obj1)内部修改主角应有的属性,还是直接在游戏对象管理类中直接赋予一个新的升级后的主角对象(Obj2)?

但是很纠结的是:
1.如果用前者的方法的话,要修改的属性太多。
2.如果用后者的话,因为升级事件的触发是在原主角类(Obj1) 中的方法触发(比如运动,碰撞)的,升级事件的检测也是在该类(Obj1)中检测的,所以不好直接赋予新的升级后的主角对象(Obj2)

大家都有什么好的方法,介绍下。

7 个解决方案

#1


用1啊,可以封装一个upgrade方法来做升级的属性修改操作

#2


引用 1 楼 wlcw16 的回复:
用1啊,可以封装一个upgrade方法来做升级的属性修改操作

这种方法要修改的属性太多,而且针对不同的等级还要进行不同的修改,太过于繁杂,还是用第二种思路比较好,直接赋予一个新等级的对象,然后修改部分属性(比如位置坐标等)就可以了。

#3


把每一级需要修改的属性写到list或者配置文件或者数据库里。每次升级直接调用就可以了。一劳永逸。如果换成新对象,不符合面向对象的思想啊。

#4


升级了还是那个猪脚,怎么能换对象呢?升级应该就能力值提升,血量攻击力,在多几个技能吧

#5


封装一个升级的方法吧,你另外再创建对象干嘛呢,主角只是升级了并没有说不需要它了啊

#6


虽然没做过游戏,不过还是觉得确实不应该换对象

升级提示的属性总有个公式来计算吧,按着公式来封装方法不行吗

#7


你就算是new一个新的对象,那也要为这个对象附上属性吧,和修改第一个对象的属性没啥差别吧!

#1


用1啊,可以封装一个upgrade方法来做升级的属性修改操作

#2


引用 1 楼 wlcw16 的回复:
用1啊,可以封装一个upgrade方法来做升级的属性修改操作

这种方法要修改的属性太多,而且针对不同的等级还要进行不同的修改,太过于繁杂,还是用第二种思路比较好,直接赋予一个新等级的对象,然后修改部分属性(比如位置坐标等)就可以了。

#3


把每一级需要修改的属性写到list或者配置文件或者数据库里。每次升级直接调用就可以了。一劳永逸。如果换成新对象,不符合面向对象的思想啊。

#4


升级了还是那个猪脚,怎么能换对象呢?升级应该就能力值提升,血量攻击力,在多几个技能吧

#5


封装一个升级的方法吧,你另外再创建对象干嘛呢,主角只是升级了并没有说不需要它了啊

#6


虽然没做过游戏,不过还是觉得确实不应该换对象

升级提示的属性总有个公式来计算吧,按着公式来封装方法不行吗

#7


你就算是new一个新的对象,那也要为这个对象附上属性吧,和修改第一个对象的属性没啥差别吧!