如何在不污染代码的情况下给大R玩家定制特殊服务

news2024/12/23 4:46:28

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

请往下看

引言

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

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

为了在不污染代码的情况下定制服务,可以选择模板方法模式。

今天,我们就来聊聊游戏开发中的模板方法模式,看看它是如何帮助我们不污染代码的情况下定制服务的。

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

什么是模版方法模式?

为了搞个封面图

模板方法模式(Template Method Pattern)是一种行为型设计模式,它定义了一个算法的骨架,将一些步骤延迟到子类中实现。这样,子类可以在不改变算法结构的情况下,重新定义算法中的某些特定步骤。在游戏开发中,模板方法模式可以帮助我们降低代码的耦合度,提高代码的复用性和可维护性

使用模板方法模式的示例代码

1.基础角色

首先我们定义一个基础的角色类Charater,初始化时添加动画组件FrameAnim,该组件源码和教程可通过发送"FrameAnim"获取CocosCreator帧动画组件FrameAnim实现与使用,包含一个攻击方法attack,攻击完后待机

区别对外,普通角色

2.小R角色

然后我们定义一个小R角色类继承基础角色,并且通过模板方法模式重写攻击方法attack,小R角色的攻击方式是先移动再攻击,最后死亡

充点小钱,与众不同

3.大R角色

最后我们定义一个大R角色类继承基础角色,并且通过模板方法模式重写攻击方法attack,大R角色的攻击方式是先移动再攻击,最后切回待机(money的作用是免死?)。

上帝

4.测试代码

分别创建三个角色CharaterSmallRCharaterBigRCharater,分别指定蜘蛛、小女孩和石头人

依然顺滑

添加键盘事件qwe分别控制蜘蛛、小女孩和石头人攻击

上下上下左右左右BABA

5.结果演示

蜘蛛快速攻击,小女孩移动之后攻击,但是攻击完成后倒地,石头人移动之后攻击,攻击后毫发无损切换回待机状态

同屏展示,钞能力

通过上面的代码,我们可以看到,角色类(Charater)定义了角色的基本行为(攻击),并提供了一个模板方法(attack),用于执行这些基本行为。具体的小R和大R角色类(SmallRCharater,BigRCharater)则实现了自己的特定行为。这样,我们就可以在不改变算法结构的情况下,轻松地为角色添加新的行为

结语

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

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

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

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

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

推荐专栏:

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

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

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

关注我,发送"模板方法模式"获取源码和源工程。

点击下方绿色按钮+关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1149085.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

39基于matlab的全局路径规划算法中的快速扩展随机树RRT路径规划算法及其改进方法

基于matlab的全局路径规划算法中的快速扩展随机树RRT路径规划算法及其改进方法,RRT Star、RRT_Conncet是一种具有状态约束的非线性系统生成开环轨迹的技术,相比于其他算法可以轻松处理障碍物的问题。程序中的各参数已进行详细说明,起点坐标&a…

[ASP]青辰网络考试管理系统NES X3.5

源码下载:https://download.csdn.net/download/m0_66047725/88452220 青辰智能网络考试管理系统NES采用功能强大、高效灵活的B/S 架构模式,先进的HTML5技术作为前端开发,用户可通过PC、手机、平板等终端进行访问。具有高度的可扩展性&#x…

Mac 4款必备精品软件

一、Downie Downie 是一款万能下载器,它已经出到第 4 代了,它可以作为你的浏览器插件使用,Downie 让你几乎能够下载在网页上的一切内容。比如你在网站上看到一个很有意思的视频,看一遍不够过瘾,想要下载下来反复观看。…

上大学期间应不应该多交朋友

听人劝、吃饱饭,奉劝各位小伙伴,不要订阅该文所属专栏。 作者:不渴望力量的哈士奇(哈哥),十余年工作经验, 跨域学习者,从事过全栈研发、产品经理等工作,现任研发部门 CTO 。荣誉:2022年度博客之星Top4、博客专家认证、全栈领域优质创作者、新星计划导师,“星荐官共赢计…

微信小程序实现微信登录(Java后台)

这两天在自己的小项目中加入了微信小程序的很多功能,今天来说一下关于微信授权登录的部分。 需要的材料 1:一个可以测试的微信小程序 2:此微信小程序的APPID和APPscret 流程 微信用户对应一个小程序都有一个唯一的openid,微信…

lv8 嵌入式开发 网络编程开发 21 私有云盘项目

目录 1云盘项目简介 2 项目实现 2.1 首先实现TCP客户端、服务端 2.2 实现客户端函数简化 2.3 实现服务端函数简化 2.4 TCP数据连包现象 2.5 封装send函数和recv函数 2.6 建立readme说明 2.7 实现文件传输 2.8 读取配置文件种的ip、端口号,通过argv[1]参数实现文件传输…

如何做好高校后勤管理?有什么好用的高校后勤管理软件?

当谈到现代校园的后勤管理时,广州商学院的经验提供了一个成功的案例,可供其他学校学习和借鉴。 一、关于广州商学院   广州商学院,是经教育部批准设立的一所全日制普通本科院校,占地面积1400多亩,总建筑面积55万余平…

白嫖的安信可-小安派s1开发板开箱

白嫖的安信可-小安派s1开发板开箱 前言1、主板2、SPI触摸屏3、DVP摄像头4、喇叭5、咪头 前言 今天是了解到接触到在到白嫖,拿到小安派的第二天,那就介绍一下刚刚接触的小安派。看到开发文档的烧录硬件的要求,安信可官方有烧录软件&#xff0…

STM32F4X SDIO(三) SD卡命令与响应

STM32F4X SDIO(三)SD卡命令与响应 SD卡命令命令类型通用命令与特殊命令命令的格式SD卡命令列表通用命令基础命令读操作命令写操作命令写保护命令擦除命令加锁命令特定应用命令 特殊命令 SD卡响应列表短响应R1响应(正常响应命令)R1b响应R3响应(OCR 寄存器…

15 结构型模式-外观模式

1 外观模式介绍 2 外观模式原理 public class SubSystemA {public void methodA(){//业务代码} }public class SubSystemB {public void methodB(){} }public class SubSystemC {public void methodC(){} }public class Facade {private SubSystemA obj1 new SubSystemA();pri…

2023年中国无人机环保监测产业链及市场规模分析[图]

无人机环保监测是无人机应用场景的重要组成部分,无人机环保监测为通过无人机飞行平台,搭载环保监测仪器进行大气环境、水环境、生态环境监测的一种环境监测模式。 无人机环保监测分类 资料来源:共研产业咨询(共研网) …

高中数学之向量

1.向量基本概念 1.既有大小又有方向的量叫做向量 2.只有大小没有方向的量叫做数量(比如年龄15) 3.具有方向的线段叫做有向线段,假设A为起点,B为终点,我们就说线段AB具有方向。向量可以用有向线段 A B → \overrightarr…

哈工大发布大模型思维链推理综述:200+文献全面解析大语言模型思维链推理最新进展...

©PaperWeekly 原创 作者 | 初征,陈靖昌,刘铭,秦兵,刘挺 单位 | 哈尔滨工业大学 研究方向 | 自然语言处理 论文标题: A Survey of Chain of Thought Reasoning: Advances, Frontiers and Future 论文链接&#xff…

【PC】2023年10月商店更新-闲游盒

亲爱的玩家朋友们,大家好! 欢迎大家来到2023年第十次商店更新! 万圣节即将到来,为了让大家可以在万圣节盛装出席,我们在10月商店更新中准备了邪恶诅咒,PGC 2023的专属宝物,以及RASH悲喜强势回归…

CentOS7安装配置MobaXterm使用换源处理虚拟机拍照备份与还原Linux常用命令

目录 一、centos7安装与配置 1.1 参考安装步骤 1.2 安装配置CentOS 7实操 1.2.1 配置虚拟机 1.2.2 登录CenOS 1.2.3 检测是否可联网 1.2.4 查看、设置IP地址 1.2.5 使用vi编辑ifcfg-ens33 1.2.6 重启网络服务 1.3 MobaXterm使用 1.3.1 官方下载地址 1.3.2 MobaXte…

数据结构——双向链表的实现

一、双向链表的结构 注意:双向链表又称带头双向循环链表 这⾥的“带头”跟前⾯我们说的“头节点”是两个概念,实际前⾯的在单链表阶段称呼不严 谨,但是为了同学们更好的理解就直接称为单链表的头节点。 带头链表⾥的头节点,实际…

计算机毕业设计选题推荐-美术馆微信小程序/安卓APP-项目实战

✨作者主页:IT研究室✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

260亿!每部手机赚数千元,手机行业太赚钱了,难怪都想做手机

日前H公司公布了前三季度的业绩,净利润大幅增长两倍多,而营收仅增长2.4%,这显示出三季度仅是多卖了数百万部高端手机,利润就飙升了数百亿元,平均每部手机赚数千元。 该公司公布的业绩显示,前三季度营收增长…

【波形图】将波形图或波形图表的数据导出至文件

LabVIEW 提供了几种方法使用户能够轻松地以不同格式类型保存波形图、波形图形或二维图片。 在本文中,您将了解如何将波形图、波形图表或二维图片另存为图像的三种不同方法。 您可以使用以下三种方法将波形图、波形图表或二维图片保存为图像文件:​​​​…