码迷,mamicode.com
首页 > 其他好文 > 详细

游戏框架再思考

时间:2014-08-27 14:20:27      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:ar   问题   on   c   设计   编程   对象   游戏   tt   

本人在游戏的时候,是按照类型划分去规划对象设计的。但是最近的一个项目碰到了需要按照实例去划分的情况。拿卡牌游戏来做比喻的话,就是一个是分成了武将卡、装备卡、阵型卡等等,另一种思路是直接分成张飞卡、关羽卡、刘备卡……

这样的思路不同照成的做法上的不同超过了我的预料。类型划分思路会把卡看成一个控件,和按钮、图片之类的控件一样,控件只提供功能,不实现逻辑,提供的接口类似于setImage、setLevel这样的函数。而按照实例去划分的思路则是把卡当成一个完整对象来看,就是标准的面向对象编程课上教的那样,提供接口的时候是这样的:onCreate、onSelect……

按照类型划分的思路会把逻辑集中到一个逻辑层当中去,控件内部只保留显示逻辑,比如逻辑层指定控件 武将卡 显示一个爆炸效果,逻辑层只调用cardBoom这个函数,而爆炸要显示那张图片,显示在卡的头上还是脚边就是 武将卡 的内部逻辑了。再比如,当 武将卡 被打死后,应该向逻辑层通报自己已经死亡,由逻辑层调用 武将卡 的remove函数。而按照对象划分的思路就会认为这些都是内部逻辑,直接一个onAttack接口就搞定了。

在类内部复杂性的问题上,按照类型划分的思路会提供多层基类,先提供一个只用于显示的基类、然后继承后再提供一个可以跑、跳的功能再封装一个基类。而按照对象划分的思路因为每个类要考虑的情况是有限的,比如张飞卡只会冲撞,关羽卡只会砍人,那么复杂度就不会太高。

游戏框架再思考

标签:ar   问题   on   c   设计   编程   对象   游戏   tt   

原文地址:http://www.cnblogs.com/sealme/p/3939209.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!