你知道如何使用优雅的代码为游戏角色切换不同技能吗?

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

你知道如何使用优雅的代码为游戏角色切换不同技能吗?_第1张图片

引言

大家好,我是亿元程序员,一位有着8年游戏行业经验的主程。

本系列是《和8年游戏主程一起学习设计模式》,让糟糕的代码在潜移默化中升华,欢迎大家关注分享收藏订阅。

优雅的代码,需要策略

大家好,今天我想和大家分享一下游戏开发中常用的设计模式之一——策略模式。策略模式是一种行为型设计模式,它通过定义一系列算法,将它们封装起来,并使它们可以相互替换,从而使算法的变化独立于使用算法的客户端。在游戏开发中,策略模式可以帮助我们实现更灵活、可维护的代码。

本文源码和源工程在文末获取,小伙伴们自行前往。

什么是策略模式?

首先,让我们来了解一下策略模式的基本概念。策略模式包含三个主要角色

  1. 环境(Context):持有一个策略类的引用,提供接口给客户端使用。
  2. 抽象策略(Strategy):定义了一组算法,为所有具体策略类所共享。
  3. 具体策略(ConcreteStrategy):实现抽象策略中的算法,提供具体的业务逻辑。

一起来使用策略模式

你知道如何使用优雅的代码为游戏角色切换不同技能吗?_第2张图片

接下来,让我们看一个简单的例子来说明策略模式的应用。假设我们正在开发一个角色扮演游戏,玩家可以通过选择不同的技能来进行攻击。我们可以使用策略模式来实现这个功能。

首先,我们定义一个策略类Skill,它有一个方法attack()用于执行技能。然后,我们创建两个具体策略类skill0skill1,分别实现紫色攻击和粉色攻击的逻辑。最后,我们在环境类Charater中使用这些策略。

1.准备资源

我们还是从82年祖传的资源里面找到一个紫色的技能攻击特效。但是一个技能可能不够演示策略模式。

你知道如何使用优雅的代码为游戏角色切换不同技能吗?_第3张图片

但是对于一个PS大神来说(不是),二话不说我们打开熟悉PS,并且把紫色技能拖进去

然后通过ctrl+u调整色相到87并点击确定,神奇的一幕出现了,技能变成了粉色。

你知道如何使用优雅的代码为游戏角色切换不同技能吗?_第4张图片

最后通过文件-存储为-修改技能名字-保存生成新的粉色技能。

你知道如何使用优雅的代码为游戏角色切换不同技能吗?_第5张图片

这样我们就得到一个粉色新技能(???)

你知道如何使用优雅的代码为游戏角色切换不同技能吗?_第6张图片

2.环境

首先定义我们的环境类Charater,其中包含attacklearnSkill接口,先在构造函数里面添加一个FrameAnim帧动画组件,关于帧动画组件的实现与使用可以阅读《CocosCreator帧动画组件FrameAnim实现与使用》。

你知道如何使用优雅的代码为游戏角色切换不同技能吗?_第7张图片

3.抽象策略

然后定义一个抽象策略类Skill,包含attack接口,同时在构造函数中添加一个FrameAnim组件。

你知道如何使用优雅的代码为游戏角色切换不同技能吗?_第8张图片

4.具体策略

最后实现2个具体的策略类,分别是Skill0Skill1,唯一的区别就是加载不同的技能效果,正是我们准备的紫色技能和粉色技能资源。

你知道如何使用优雅的代码为游戏角色切换不同技能吗?_第9张图片

5.测试代码

创建一个主角,同时实例化2个具体的技能。

你知道如何使用优雅的代码为游戏角色切换不同技能吗?_第10张图片

监听键盘事件,qwe分别执行空手攻击、装备Skill0后攻击和装备Skill1后攻击。

你知道如何使用优雅的代码为游戏角色切换不同技能吗?_第11张图片

6.结果演示

你知道如何使用优雅的代码为游戏角色切换不同技能吗?_第12张图片

在上面的例子中,我们通过将技能抽象成策略类,使得玩家可以自由选择不同的技能进行攻击。如果以后需要添加更多的技能,只需要创建一个新的具体策略类即可,而不需要修改其他代码。这样,我们的代码就变得更加灵活、可维护了。

结语

在哪里可以看到如此清晰的思路,快跟上我的节奏!关注我,和我一起了解游戏行业最新动态,学习游戏开发技巧。

本系列是《和8年游戏主程一起学习设计模式》,让糟糕的代码在潜移默化中升华,欢迎大家关注分享收藏订阅。

我是"亿元程序员",一位有着8年游戏行业经验的主程。在游戏开发中,希望能给到您帮助, 也希望通过您能帮助到大家。

AD:笔者线上的小游戏《贪吃蛇掌机经典》《重力迷宫球》《填色之旅》大家可以自行点击搜索体验。

实不相瞒,想要个在看!请把该文章分享给你觉得有需要的其他小伙伴。谢谢!

推荐专栏:

8年主程手把手打造Cocos独立游戏开发框架

从零开始开发贪吃蛇小游戏到上线系列

游戏开发的技巧、心得、资讯

关注我,发送"策略模式"获取源码和源工程。

点击下方绿色按钮+关注

你可能感兴趣的:(游戏,设计模式)