点击上方亿元程序员+关注和★星标
引言
大家好,我是亿元程序员,一位有着8年游戏行业经验的主程。
本系列是《和8年游戏主程一起学习设计模式》,让糟糕的代码在潜移默化中升华,欢迎大家关注分享收藏订阅。
为了在不污染代码的情况下定制服务,可以选择模板方法模式。
今天,我们就来聊聊游戏开发中的模板方法模式,看看它是如何帮助我们不污染代码的情况下定制服务的。
本文源码和源工程在文末获取,小伙伴们自行前往。
什么是模版方法模式?
模板方法模式(Template Method Pattern)是一种行为型设计模式,它定义了一个算法的骨架,将一些步骤延迟到子类中实现。这样,子类可以在不改变算法结构的情况下,重新定义算法中的某些特定步骤。在游戏开发中,模板方法模式可以帮助我们降低代码的耦合度,提高代码的复用性和可维护性。
使用模板方法模式的示例代码
1.基础角色
首先我们定义一个基础的角色类Charater
,初始化时添加动画组件FrameAnim
,该组件源码和教程可通过发送"FrameAnim"获取CocosCreator帧动画组件FrameAnim实现与使用,包含一个攻击方法attack
,攻击完后待机。
2.小R角色
然后我们定义一个小R角色类继承基础角色,并且通过模板方法模式重写攻击方法attack
,小R角色的攻击方式是先移动再攻击,最后死亡。
3.大R角色
最后我们定义一个大R角色类继承基础角色,并且通过模板方法模式重写攻击方法attack
,大R角色的攻击方式是先移动再攻击,最后切回待机(money的作用是免死?)。
4.测试代码
分别创建三个角色Charater
、SmallRCharater
和BigRCharater
,分别指定蜘蛛、小女孩和石头人。
添加键盘事件q
、w
和e
分别控制蜘蛛、小女孩和石头人攻击。
5.结果演示
蜘蛛快速攻击,小女孩移动之后攻击,但是攻击完成后倒地,石头人移动之后攻击,攻击后毫发无损切换回待机状态。
通过上面的代码,我们可以看到,角色类(Charater)定义了角色的基本行为(攻击),并提供了一个模板方法(attack),用于执行这些基本行为。具体的小R和大R角色类(SmallRCharater,BigRCharater)则实现了自己的特定行为。这样,我们就可以在不改变算法结构的情况下,轻松地为角色添加新的行为。
结语
在哪里可以看到如此清晰的思路,快跟上我的节奏!关注我,和我一起了解游戏行业最新动态,学习游戏开发技巧。
本系列是《和8年游戏主程一起学习设计模式》,让糟糕的代码在潜移默化中升华,欢迎大家关注分享收藏订阅。
我是"亿元程序员",一位有着8年游戏行业经验的主程。在游戏开发中,希望能给到您帮助, 也希望通过您能帮助到大家。
AD:笔者线上的小游戏《贪吃蛇掌机经典》《重力迷宫球》《填色之旅》大家可以自行点击搜索体验。
实不相瞒,想要个赞和在看!请把该文章分享给你觉得有需要的其他小伙伴。谢谢!
推荐专栏:
8年主程手把手打造Cocos独立游戏开发框架
从零开始开发贪吃蛇小游戏到上线系列
游戏开发的技巧、心得、资讯
关注我,发送"模板方法模式"获取源码和源工程。
点击下方绿色按钮+关注