点击上方亿元程序员+关注和★星标

引言
大家好,我是亿元程序员,一位有着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:笔者线上的小游戏《贪吃蛇掌机经典》《重力迷宫球》《填色之旅》大家可以自行点击搜索体验。
实不相瞒,想要个赞 和在看 !请把该文章分享给你觉得有需要的其他小伙伴。谢谢!
推荐专栏:
关注我,发送"模板方法模式"获取源码和源工程。
点击下方绿色按钮+关注