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

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

引言

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

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

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

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

点击下方绿色按钮+关注

相关推荐
Patrick_Wilson2 分钟前
Cookie 作用域避坑:父域泄漏、同名优先级与多环境隔离
前端·http·浏览器
api工厂9 分钟前
ZCode 3.0 版本搭配GLM-5.2能力测试
前端·人工智能·ai
小小小小宇13 分钟前
单点登录(二)
前端
阿猫的故乡28 分钟前
Vue + Axios 从入门到封装:拦截器、错误处理、请求取消、接口管理全搞定
前端·javascript·vue.js
良逍Ai出海44 分钟前
免费模板搭完独立站后,我用 Codex + Figma 做了自己的页面设计
前端·人工智能·figma
纽格立科技1 小时前
DRM 发射端链路图(下)
前端·人工智能·车载系统·信息与通信·传媒
代码小库1 小时前
【2026前端转 AI 全栈指南】第 2 章(下):NestJS 项目创建 · MongoDB 配置 · 项目启动与调试
前端·数据库·mongodb
之歆1 小时前
Promise 基础技术深度解析:从回调地狱到链式调用
前端·okhttp·promise
甲维斯1 小时前
国产版“Codex”初体验,智谱ZCode很强啊!
前端·人工智能·ai编程
道友可好1 小时前
AI 怎么自己跑完一个 6 小时的任务?
前端·人工智能·后端