游戏开发中的"御用中介"

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

引言

大家好,我是亿元程序员,一位有着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独立游戏开发框架

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

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

关注我,发送"中介者模式"获取源码和源工程。

点击下方绿色按钮+关注

相关推荐
不会敲代码12 分钟前
手写 Mini React:从 JSX 到虚拟 DOM 再到 render,搞懂 React 底层原理
前端·javascript·react.js
kyriewen1 小时前
你的代码仓库变成“毛线团”了?Monorepo 用 Turborepo 拆成“乐高积木”
前端·javascript·面试
身如柳絮随风扬1 小时前
你知道什么是 Ajax 吗?—— 从入门到原理,一篇彻底搞懂
前端·ajax·okhttp
旷世奇才李先生2 小时前
Vue3\+TypeScript 2026实战——企业级前端项目架构搭建与性能优化全指南
前端·架构·typescript
Beginner x_u2 小时前
前端八股整理(工程化 02)|CommonJS/ESM、Webpack Loader/Plugin 与Vite 对比
前端·webpack·node.js·plugin·loader
openKaka_2 小时前
createRoot 到底创建了什么:FiberRootNode 和 HostRootFiber 的初始化过程
前端·javascript·react.js
习明然3 小时前
UniApp开发体验感受总结
前端·uni-app
刀法如飞4 小时前
Claude Code Skills 推荐:2026年最值得安装的10个AI技能
前端·后端·ai编程
Lee川4 小时前
面试手写 KeepAlive:React 组件缓存的实现原理
前端·react.js·面试
墨染天姬5 小时前
【AI】cursor提示词小技巧
前端·数据库·人工智能