c++用图形库写个小游戏,类的种类问题

qq_25407251 2017-03-05 10:16:24
植物大战僵尸,我是单独将卡片做成一个类,当成工厂创造植物,还是不单独做成类啊,,求解啊,对于类把握不好
...全文
334 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zilaishuichina 2017-03-07
  • 打赏
  • 举报
回复
引用 5 楼 qq_25407251 的回复:
[quote=引用 4 楼 zilaishuichina 的回复:] [quote=引用 3 楼 qq_25407251 的回复:] [quote=引用 1 楼 zilaishuichina 的回复:] 如果从软件工程的角度来说, 一般做法是 每种卡片是一个子类, 所有卡片都 继承 卡片 基类 卡片基类处理通用逻辑:攻击,移动,每帧更新 具体子类实现,具体的这一种植物:如何移动,如何攻击,每帧更新什么 每种卡片是一个子类 的好处是: 当你需要增加一些卡片种类的时候,新增子类实现就可以, 其他卡片的逻辑不受影响 当你需要删除一些卡片种类的时候,删除对应子类就可以,其他卡片的逻辑同样不受影响
我打算做卡片类 与 植物类,卡片可以加载卡片图片及植物图片资源,在游戏中有选择卡片及卡片冷却功能,就用卡片类控制自己的是否被选择、冷却状态,游戏正式开始后创建具体植物时创建对应植物,同时把植物图片资源传过去,这样行吗?(一开始所有卡片加载了卡片图片资源,当选择了本次关卡所用植物后,对应卡片再调用加载植物图片资源函数,图片资源用指针存的,本次关卡结束又释放植物图片内存,地图上同种植物都使用对应卡片加载好的图片资源)[/quote] 行不行 试一下就知道了 自己用来练习的小程序, 怎么写都可以 多动手,代码写多了,你就知道,一开始可以怎样去设计架构,怎么样取巧,怎么样避免一些重复性的工作,怎么样让自己的代码更好维护 去吧 骚年, just do it[/quote]突然发现竟然有腾讯的表情客服啊,,,那就这样写吧,,再请教一个答案很简单的问题,类是细化还是粗化,,如植物这个类直接派生出各种植物,还是按照功能简单分一下,在各自派生出各种植物??[/quote] 类的继承关系 一般不要太深, 尽量扁平化 一般倾向于 :

       A
|  |  |  |  |  |
A1 A2 A3 A4 A5 A6
不倾向于:
     A
 |       |
 A1      A2
|   |   |   |
A11 A12 A21 A22
赵4老师 2017-03-07
  • 打赏
  • 举报
回复
请牢记:源代码本身的书写是否结构化或面向对象或符合设计模式或敏捷…并不重要,重要的是你是否使用结构化或面向对象或符合设计模式或敏捷…的方法命名标识符、阅读、修改、检查、测试源代码。 意思是你程序结构看上去再合理,再简洁,也不一定比看上去一团乱麻的程序结构在运行或修改时更不易出错,更方便修改,出错了更容易找到哪里出错和具体出错的原因,更容易改正错误。 试对比 图书馆(对图书的分类够结构化了吧) 和 搜索引擎(可看作是扁平化任何结构数据,仅支持全文检索) 哪个处理信息更方便、更高效。 所以 与其费劲去重构代码让其看上去更简洁、更合理 不如费劲学习grep、sed、awk、……这类全文搜索和批处理编辑的工具。 结构越复杂,越难修改,越难除错。 有时(甚至大多数时候),看上去越合理、越简洁的代码,运行起来性能越差,出错时查找原因越难,找到出错原因后改正越费劲。 程序员要做的不是尽力避免错误,而是聚焦在快速发现并改正错误。真正以快速方式轻易解决错误,“快速的失败”远胜过“预防错误”。Fred George 前微软C#编辑器的开发主管Jay Bazuzi列出的一些有助于找到正确方向的问题;他觉得前同事们应该用这些问题来问自己;实际上不管在哪里工作的开发者们都应该经常问问自己这些问题: ◆“要保证这个问题不会再出现,我该怎么做?” ◆“要想少出些Bug,我该怎么做?” ◆“要保证Bug容易被修复,我该怎么做?” ◆“要保持对变化的快速响应,我该怎么做?” ◆“要保证我的软件的运行速度,我该怎么做?” 如果大多数团队都能不时问一下自己,必定会从中得益,因为这些都是真正强而有力的问题。
zilaishuichina 2017-03-06
  • 打赏
  • 举报
回复
如果从软件工程的角度来说, 一般做法是 每种卡片是一个子类, 所有卡片都 继承 卡片 基类 卡片基类处理通用逻辑:攻击,移动,每帧更新 具体子类实现,具体的这一种植物:如何移动,如何攻击,每帧更新什么 每种卡片是一个子类 的好处是: 当你需要增加一些卡片种类的时候,新增子类实现就可以, 其他卡片的逻辑不受影响 当你需要删除一些卡片种类的时候,删除对应子类就可以,其他卡片的逻辑同样不受影响
qq_25407251 2017-03-06
  • 打赏
  • 举报
回复
引用 4 楼 zilaishuichina 的回复:
[quote=引用 3 楼 qq_25407251 的回复:] [quote=引用 1 楼 zilaishuichina 的回复:] 如果从软件工程的角度来说, 一般做法是 每种卡片是一个子类, 所有卡片都 继承 卡片 基类 卡片基类处理通用逻辑:攻击,移动,每帧更新 具体子类实现,具体的这一种植物:如何移动,如何攻击,每帧更新什么 每种卡片是一个子类 的好处是: 当你需要增加一些卡片种类的时候,新增子类实现就可以, 其他卡片的逻辑不受影响 当你需要删除一些卡片种类的时候,删除对应子类就可以,其他卡片的逻辑同样不受影响
我打算做卡片类 与 植物类,卡片可以加载卡片图片及植物图片资源,在游戏中有选择卡片及卡片冷却功能,就用卡片类控制自己的是否被选择、冷却状态,游戏正式开始后创建具体植物时创建对应植物,同时把植物图片资源传过去,这样行吗?(一开始所有卡片加载了卡片图片资源,当选择了本次关卡所用植物后,对应卡片再调用加载植物图片资源函数,图片资源用指针存的,本次关卡结束又释放植物图片内存,地图上同种植物都使用对应卡片加载好的图片资源)[/quote] 行不行 试一下就知道了 自己用来练习的小程序, 怎么写都可以 多动手,代码写多了,你就知道,一开始可以怎样去设计架构,怎么样取巧,怎么样避免一些重复性的工作,怎么样让自己的代码更好维护 去吧 骚年, just do it[/quote]突然发现竟然有腾讯的表情客服啊,,,那就这样写吧,,再请教一个答案很简单的问题,类是细化还是粗化,,如植物这个类直接派生出各种植物,还是按照功能简单分一下,在各自派生出各种植物??
zilaishuichina 2017-03-06
  • 打赏
  • 举报
回复
引用 3 楼 qq_25407251 的回复:
[quote=引用 1 楼 zilaishuichina 的回复:] 如果从软件工程的角度来说, 一般做法是 每种卡片是一个子类, 所有卡片都 继承 卡片 基类 卡片基类处理通用逻辑:攻击,移动,每帧更新 具体子类实现,具体的这一种植物:如何移动,如何攻击,每帧更新什么 每种卡片是一个子类 的好处是: 当你需要增加一些卡片种类的时候,新增子类实现就可以, 其他卡片的逻辑不受影响 当你需要删除一些卡片种类的时候,删除对应子类就可以,其他卡片的逻辑同样不受影响
我打算做卡片类 与 植物类,卡片可以加载卡片图片及植物图片资源,在游戏中有选择卡片及卡片冷却功能,就用卡片类控制自己的是否被选择、冷却状态,游戏正式开始后创建具体植物时创建对应植物,同时把植物图片资源传过去,这样行吗?(一开始所有卡片加载了卡片图片资源,当选择了本次关卡所用植物后,对应卡片再调用加载植物图片资源函数,图片资源用指针存的,本次关卡结束又释放植物图片内存,地图上同种植物都使用对应卡片加载好的图片资源)[/quote] 行不行 试一下就知道了 自己用来练习的小程序, 怎么写都可以 多动手,代码写多了,你就知道,一开始可以怎样去设计架构,怎么样取巧,怎么样避免一些重复性的工作,怎么样让自己的代码更好维护 去吧 骚年, just do it
qq_25407251 2017-03-06
  • 打赏
  • 举报
回复
引用 1 楼 zilaishuichina 的回复:
如果从软件工程的角度来说, 一般做法是 每种卡片是一个子类, 所有卡片都 继承 卡片 基类 卡片基类处理通用逻辑:攻击,移动,每帧更新 具体子类实现,具体的这一种植物:如何移动,如何攻击,每帧更新什么 每种卡片是一个子类 的好处是: 当你需要增加一些卡片种类的时候,新增子类实现就可以, 其他卡片的逻辑不受影响 当你需要删除一些卡片种类的时候,删除对应子类就可以,其他卡片的逻辑同样不受影响
我打算做卡片类 与 植物类,卡片可以加载卡片图片及植物图片资源,在游戏中有选择卡片及卡片冷却功能,就用卡片类控制自己的是否被选择、冷却状态,游戏正式开始后创建具体植物时创建对应植物,同时把植物图片资源传过去,这样行吗?(一开始所有卡片加载了卡片图片资源,当选择了本次关卡所用植物后,对应卡片再调用加载植物图片资源函数,图片资源用指针存的,本次关卡结束又释放植物图片内存,地图上同种植物都使用对应卡片加载好的图片资源)
ooolinux 2017-03-06
  • 打赏
  • 举报
回复
有料贴,关注~

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧