点击上方亿元程序员+关注和★星标
引言
大家好,我是亿元程序员,一位有着8年游戏行业经验的主程。
本系列是《和8年游戏主程一起学习设计模式》,让糟糕的代码在潜移默化中升华,欢迎大家关注分享收藏订阅。
游戏开发中的"御用中介"-中介者模式
让我们一起来探讨一下游戏开发中的中介者模式,这是一个非常常见的设计模式,能够帮助游戏开发者更好地管理游戏内部的各种交互和通信。
本文源码和源工程在文末获取,小伙伴们自行前往。
什么是中介者模式?
中介者模式是一种行为型设计模式,它的主要目标是减少组件之间的直接交互,将这些交互集中在一个中介者对象中。在游戏开发中,这意味着将各个游戏对象之间的通信和协作交给一个中介者来处理,而不是让它们直接互相通信。
中介者模式在游戏中的应用
1. 管理游戏对象之间的交互
在游戏中,有各种各样的游戏对象,例如角色、敌人、道具等。它们通常需要相互协作,但直接的交互可能会导致复杂的依赖关系。中介者模式可以用来管理它们之间的交互,通过中介者对象来协调它们的行为,从而降低系统的复杂性。
2. 实现事件系统
中介者模式可以被用来构建游戏的事件系统,其中游戏对象不直接通知其他对象,而是通过中介者发布和订阅事件。这种方式可以简化事件处理和管理,使游戏更容易扩展和维护。
3. 多人游戏中的网络通信
在多人游戏中,各个玩家之间需要进行大量的通信和协作。中介者模式可以用来处理网络通信,确保玩家之间的数据同步和协作,同时降低网络延迟和负载。
中介者模式的优点
- 降低了对象之间的耦合度,使系统更容易维护和扩展。
- 提高了代码的可读性和可维护性,因为所有的交互都集中在一个地方。
- 支持更灵活的系统设计,允许动态添加和移除对象,而不会破坏系统的稳定性。
一起来使用中介者模式
1.角色类与动画
首先声明一个Character
角色基类,定义了动画组件,组件是FrameAnim
序列帧动画组件,用于管理和播放角色的序列帧动画,大家可以通过文章《CocosCreator帧动画组件FrameAnim实现与使用》获取。
2.具体角色类
首先声明一个Player
类,它包含攻击attack
、追逐chase
、停止Stop
方法。
然后声明一个Enemy
类,它包含受伤takeDamage
、逃跑escape
方法。
3.中介者
声明一个Mediator
中介类。主要用来处理玩家的请求和将请求传达给目标。
4.测试代码
首先按照惯例创建2个具体的主角和怪物,本次测试主角是一头狼、攻击目标是一个小女孩。
监听事件,键盘space
键控制玩家攻击,长按键盘d
移动角色,放开d
取消移动。
5.结果演示
测试成功,当狼追逐的时候,小女孩逃跑,当狼停下来的时候,小女孩也一起停下来,当狼攻击的时候,小女孩应声倒地。全程都是通过"御用中介"去处理和操作。
结语
在哪里可以看到如此清晰的思路,快跟上我的节奏!关注我,和我一起了解游戏行业最新动态,学习游戏开发技巧。
本系列是《和8年游戏主程一起学习设计模式》,让糟糕的代码在潜移默化中升华,欢迎大家关注分享收藏订阅。
我是"亿元程序员",一位有着8年游戏行业经验的主程。在游戏开发中,希望能给到您帮助, 也希望通过您能帮助到大家。
AD:笔者线上的小游戏《贪吃蛇掌机经典》《重力迷宫球》《填色之旅》大家可以自行点击搜索体验。
实不相瞒,想要个赞和在看!请把该文章分享给你觉得有需要的其他小伙伴。谢谢!
推荐专栏:
8年主程手把手打造Cocos独立游戏开发框架
从零开始开发贪吃蛇小游戏到上线系列
游戏开发的技巧、心得、资讯
关注我,发送"中介者模式"获取源码和源工程。
点击下方绿色按钮+关注