当前位置: 首页 > news >正文

模拟原神圣遗物系统-小森设计项目,设计圣遗物(生之花,死之羽,时之沙,空之杯,理之冠)抽象类

分析圣遗物

在圣遗物系统,玩家操控的是圣遗物的部分
在这里插入图片描述

因此我们应该 物以类聚 人与群分把每个圣遗物的部分,抽象出来 拿 生之花,死之羽为例 若是抽象 类很好的扩展 添加冒险家的生之花 时候继承生之花 并且名称冒险者- 生之花 当然圣遗物包含(生之花,死之羽,时之沙 空之杯 理之冠)组合而成若装备它
2件套效果:生命值上限提高1000点。
4件套效果 开启各类宝箱后的5秒内,持续恢复30%生命值。
在这里插入图片描述

当然前期为了稳定就不要这种效果
废话说了这么多,你有没有领悟到设计?

设计圣遗物(生之花,死之羽,时之沙)抽象类 代码实例

// 生之花抽象类
class flowerOfLife {
public:// 默认构造函数flowerOfLife() {}// 带参数的构造函数flowerOfLife(int id, string name, int Level, int HealthPoints) : id(id), name(name), level(Level), healthPoints(HealthPoints) {}// 虚析构函数,确保派生类的析构函数被调用virtual ~flowerOfLife() {}// 纯虚函数,用于获取圣遗物的IDvirtual int Id() const = 0;// 纯虚函数,用于获取圣遗物的名称virtual string Name() const = 0;// 虚函数,用于获取圣遗物的等级virtual int level() const { return level; }// 虚函数,用于获取圣遗物的生命值virtual int HealthPoints() const { return healthPoints; }// 纯虚函数,用于获取圣遗物的子条目信息virtual string SubEntry() const = 0;// 纯虚函数,用于更新圣遗物的子条目信息virtual void updateSubEntry() = 0;protected:int id; // 圣遗物的唯一标识符string name; // 圣遗物的名称int level; // 圣遗物的等级int healthPoints; // 圣遗物的生命值
};// 死之羽抽象类
class Plumeofdeath {
public:// 默认构造函数Plumeofdeath() {}// 带参数的构造函数Plumeofdeath(int id, string name, int Level, int atk) : id(id), name(name), level(Level), atk(atk) {}// 虚析构函数,确保派生类的析构函数被调用virtual ~Plumeofdeath() {}// 纯虚函数,用于获取圣遗物的IDvirtual int Id() const = 0;// 纯虚函数,用于获取圣遗物的名称virtual string Name() const = 0;// 虚函数,用于获取圣遗物的等级virtual int Level() const { return level; }// 纯虚函数,用于获取圣遗物的攻击力virtual int ATK() const = 0;// 纯虚函数,用于获取圣遗物的子条目信息virtual string SubEntry() const = 0;// 纯虚函数,用于更新圣遗物的子条目信息virtual void updateSubEntry() = 0;protected:int id; // 圣遗物的唯一标识符string name; // 圣遗物的名称int level; // 圣遗物的等级int atk; // 圣遗物的攻击力
};// 时之沙抽象类
class sandsofTime {
public:// 默认构造函数sandsofTime() {}// 带参数的构造函数sandsofTime(int id, string name, int Level) : id(id), name(name), level(Level) {}// 虚析构函数,确保派生类的析构函数被调用virtual ~sandsofTime() {}// 纯虚函数,用于获取圣遗物的IDvirtual int Id() const = 0;// 纯虚函数,用于获取圣遗物的名称virtual string Name() const = 0;// 纯虚函数,用于获取圣遗物的等级virtual int Level() const = 0;// 设置攻击力沙virtual void setATK(float atk) {}// 获取攻击力virtual float atk() const { return 0.0; }// 设置防御力沙virtual void setDefense(float defense) {}// 获取防御力virtual float Defense() const { return 0.0; }// 设置生命值沙virtual void setHealthPoints(float healthPoints) {}// 获取生命值virtual float healthPoints() const { return 0.0; }// 设置元素充能沙virtual void setEnergyRecharge(float energyRecharge) {}// 获取元素充能virtual float EnergyRecharge() const { return 0.0; }// 设置元素精通沙virtual void setElementalMastery(int mastery) {}// 获取元素精通virtual int ElementalMastery() const { return 0; }// 纯虚函数,用于获取圣遗物的子条目信息virtual string SubEntry() const = 0;// 纯虚函数,用于更新圣遗物的子条目信息virtual void updateSubEntry() = 0;protected:int id; // 圣遗物的唯一标识符string name; // 圣遗物的名称int level; // 圣遗物的等级
};

设计圣遗物(空之杯,理之冠)设计实例

class emptyCup {emptyCup();emptyCup(int id, string name, int Level);virtual ~emptyCup() {};virtual int Id() = 0;virtual string Name() = 0;virtual int Level() = 0;// 设置火伤属性 主词条virtual void setFireinjury(float fireInjury) {}// 获取火伤属性 主词条virtual float Fireinjury() { return 0.0; }// 设置水伤属性 主词条virtual void setWaterinjury(float waterInjury) {}// 获取水伤属性 virtual float Waterinjury() { return 0.0; }// 设置草伤属性 主词条virtual void setGrassinjury(float grassInjury) {}// 获取草伤属性主词条virtual float Grassinjury() { return 0.0; }// 设置雷伤属性主词条virtual void setthunderinjury(float thunderInjury) {}// 获取雷伤属性主词条virtual float thunderinjury() { return 0.0; }// 设置风伤属性主词条virtual void setWindinjury(float windInjury) {}// 获取风伤属性主词条virtual float Windinjury() { return 0.0; }// 设置冰伤属性主词条virtual void setIceinjury(float iceInjury) {}// 获取冰伤属性主词条virtual float Iceinjury() { return 0.0; }// 设置岩伤属性 主词条virtual void setRockinjury(float rockInjury) {}// 获取岩伤属性 主词条virtual float Rockinjury() { return 0.0; }// 设置物伤属性 主词条virtual void setPhysicalinjury(float physicalInjury) {}// 获取物伤属性 主词条virtual float Physicalinjury() { return 0.0; }// 设置攻击力 主词条virtual void setAttack(float attack) {}// 获取攻击力 主词条virtual float Attack() { return 0.0; }// 设置防御力 主词条virtual void setDefense(float defense) {}// 获取防御力 主词条virtual float Defense() { return 0.0; }// 设置生命 主词条virtual void setLife(float life) {}// 获取生命 主词条virtual float Life() { return 0.0; }// 设置元素精通主词条virtual void setElementsMastery(int mastery) {}// 获取元素精通主词条virtual int elementsMastery() { return 0; }protected:int id;string name;int level;
};class CrownOfReason {public:CrownOfReason();CrownOfReason(int id, string name, int Level);virtual ~CrownOfReason() {};virtual int Id() = 0;virtual string Name() = 0;virtual int Level() = 0;// 设置攻击力主词条virtual void setAttack(float attack) {}// 获取攻击力冠virtual float Attack() { return 0.0; }// 设置防御主词条virtual void setDefense(float defense) {}// 获取防御主词条virtual float Defense() { return 0.0; }// 设置生命主词条virtual void setLife(float life) {}// 获取生命主词条virtual float Life() { return 0.0; }// 设置元素精通主词条virtual void setElementsMastery(int mastery) {}// 获取元素精通主词条virtual int elementsMastery() { return 0; }protected:int id;string name;int level;
};

相关文章:

模拟原神圣遗物系统-小森设计项目,设计圣遗物(生之花,死之羽,时之沙,空之杯,理之冠)抽象类

分析圣遗物 在圣遗物系统,玩家操控的是圣遗物的部分 因此我们应该 物以类聚 人与群分把每个圣遗物的部分,抽象出来 拿 生之花,死之羽为例 若是抽象 类很好的扩展 添加冒险家的生之花 时候继承生之花 并且名称冒险者- 生之花 当然圣遗物包含…...

仿真模拟--telnet服务两种认证模式(自作)

自己做的笔记,有问题或看不懂请见解一下~ 目录 两个路由器间实现telnet服务(password认证模式) server client 两个路由器间实现telnet服务(aaa认证模式) server client 改名 tab键补齐 不会就扣问号 ? save 两个路由器间实现telnet服务…...

Apple Phone Memory

Apple Phone Memory 苹果手机内存查询,哪些应用程序(app)占用内存: 设置 通用 iPhone储存空间 清理下QQ音乐:...

Kubernetes容器运行时:Containerd vs Docke

容器化技术笔记 Kubernetes容器运行时:Containerd vs Docke - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this arti…...

【java 线程的状态】

介绍 Java 线程在运⾏的⽣命周期中的指定时刻只可能处于下⾯ 6 种不同状态的其中⼀个状态 状态名称说明NEW初始状态,线程被构建,但是还没有调用start()方法RUNNABLE运行状态,Java线程将操作系统中的就绪和运行两种状态统称为"运行中"BLOCKED阻塞状态,表示线程阻塞于…...

php加密验签

签名生成步骤(小程序端/前端): 确定参与签名的参数:选择需要参与签名的请求参数,通常包括请求的时间戳、随机数、请求的数据等。 参数排序与拼接:将所有参与签名的参数按照字母顺序排序,并拼接成…...

【Golang - 90天从新手到大师】Day06 - 数组

系列文章合集 Golang - 90天从新手到大师 数组是golang中最常用的一种数据结构,数组就是同一类型数据的有序集合 定义一个数组 格式: var name [n]type n为数组长度,n>0 且无法修改,type为数组的元素类型如: var a [2]int上面的例子定义了一个长度为2,元素类型为int的数组…...

java的有参构造方法

java的有参构造方法和无参构造方法类似,区别是构造方法名称里后面跟着一个括号,括号里是参数的定义 示例代码如下 class student4{private String name;private int age;public student4(String n,int a) {namen;agea;System.out.println("调用了…...

Vue66-vue-默认插槽

一、默认插槽需求 1-1、原本的写法: 在每个category组件中用v-show来做条件渲染,但是不方便! 1-2、默认插槽 img标签,ul标签,video标签,都是在app组件中完成解析之后,塞到category组件中的&…...

tsf-consul的使用

在腾讯云微服务平台TSF中使用Consul作为服务发现组件,通常需要遵循以下步骤: ### 1. 创建应用 首先,您需要在TSF控制台创建一个应用。在创建应用时,选择合适的业务类型、开发语言、开发框架等信息。对于使用Consul作为服务发现组件的Spring Cloud应用,您需要选择“业务应…...

【perl】基本语法 /备忘录/

分享 perl 语言学习资源 Perl 教程|极客教程 (geek-docs.com) Perl [zh] (runebook.dev) Perl 运算符 | 菜鸟教程 (runoob.com) Perl Documentation - Perldoc Browser Search the CPAN - metacpan.org 当然还有一些经典书籍,不再列举。 1、数字 1.1、数字表…...

mongodb 集群安装

整体架构图: 1. 配置域名 Server1: OS version: CentOS Linux release 8.5.2111 hostnamectl --static set-hostname mongo01 vi /etc/sysconfig/network # Created by anaconda hostnamemong01 echo "192.168.88.20 mong1 mongo01.com mongo…...

绿茶集团重启IPO:流量渐退、业绩波动,还能讲出好故事吗?

近日,绿茶集团有限公司(下称“绿茶集团”)向港交所递交上市申请,花旗、招银国际为其联席保荐人。 回望绿茶集团的上市之路,可谓有诸多坎坷。该公司于2021年3月首度向港交所发起冲击,但却将中文版招股书中的“流动负债总额”错写成…...

Git与SSH

Git Git是一种分布式版本控制系统,最初由Linus Torvalds为管理Linux内核开发而设计并开发。Git可以帮助开发团队协作管理代码,跟踪代码变更历史,并在需要时回溯到特定版本。 分布式版本控制:每个开发者都可以拥有完整的代码仓库…...

我的创作纪念日--码农阿豪

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119qq.com] &#x1f4f1…...

Git 学习笔记(超详细注释,从0到1)

Git学习笔记 1.1 关键词 Fork、pull requests、pull、fetch、push、diff、merge、commit、add、checkout 1.2 原理(看图学习) 1.3 Fork别人仓库到自己仓库中 记住2个地址 1)上游地址(upstream地址):http…...

GitLab项目组相关操作(创建项目组Group、创建项目组的项目、为项目添加成员并赋予权限)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。 君不见,黄河之水天上来,奔流到海不复回。 君不见,高堂明镜悲白发,朝如青丝暮成雪。 ——《将…...

英语恶补ing

ing的词组都有停下来做某事的感觉了。 second hand是形容词了。 wouldnt buy这里的would是情态动词,也是助动词 助动词不能单独使用,要搭配实义动词,这样才能构成谓语 情态动词(modals)在英语中有多种作用&#xff…...

DS1339C串行实时时钟-国产兼容RS4C1339

RS4C1339串行实时时钟是一种低功耗的时钟/日期设备,具有两个可编程的一天时间报警器和一个可编程方波输出。地址和数据通过2线双向总线串行传输。时钟/日期提供秒、分钟、小时、天、日期、月份和年份信息。对于少于31天的月份,月末的日期会自动调整&…...

神经网络模型---LeNet-5

一、LeNet-5 1.定义LeNet-5模型 model models.Sequential([1.1添加一个二维卷积层,有6个过滤器,每个过滤器的尺寸是5x5。输入图像尺寸是28x28像素,具有1个颜色通道,激活函数是relu layers.Conv2D(6, (5, 5), activationrelu, input_shape…...

免费分享:1994-2020年中国各行业二氧化碳排放数据(附下载方法)

日前,国务院印发《2024—2025年节能降碳行动方案》针对重点领域进行部署,同时明确了制度标准、价格政策、资金支持、科技引领、市场化机制、全民行动等6项措施,为节能降碳提供支撑保障。1994-2020年中国各行业二氧化碳排放数据为评估环境政策…...

Qemu虚拟机在线迁移到VMware

libvirt版本:libvirt-10.0.0qemu版本:qemu-8.2.0 在生产环境中,大多数的场景是 vmware 虚拟机迁移到 qemu 环境,一般是通过关机然后导出、导入磁盘镜像来实现。 如果要将 qemu 环境虚拟机迁移到 vmware 怎么办呢?要求…...

计算机游戏因为d3dcompiler_47.dll丢失无法启动怎么办?解决只要d3dcompiler_47.dll丢失无法启动游戏软件的方法

d3dcompiler_47.dll 是一个动态链接库文件,属于 Microsoft DirectX 的一部分,主要负责编译和运行 3D 图形程序。它是支持 Direct3D 功能的核心组件,Direct3D 是一种用于编程 3D 图形的 API,广泛应用于游戏和图形密集型应用程序中。…...

LDO的原理及测试方法

一、基本结构 这是LM317芯片的核心,这个电路单元称为Bandgap Reference带隙基准源。属于模拟集成电路中的经典电路结构。 LDO拓扑结构图 常见的基本结构 利用VBE的负温度系数,而VT是正温度系数,正负温度系数抵消就的得到稳定的基准参考电压了(三极管的方程VBE=VT*In(lC/IS…...

图论算法学习

图论 dfs是可一个方向去搜,不到黄河不回头,直到遇到绝境了,搜不下去了,再换方向(换方向的过程就涉及到了回溯)。bfs是先把本节点所连接的所有节点遍历一遍,走到下一个节点的时候,再…...

面试题——RabbitMQ

★1.如何保证消息的幂等性?(如何避免消息重复投递) 生产端: 在消息发送前,先查询数据库此消息是否被处理过。处理过则忽略、否则继续处理,并在处理完成后修改状态为已处理。 消费端: 每个消息都生成全局唯一ID或业务I…...

前端开发之浏览器垃圾回收机制

前端开发之浏览器垃圾回收机制 V8引擎,作为Chrome浏览器和Node.js等环境下的JavaScript运行引擎,其垃圾回收机制是确保高效内存管理的关键。 V8垃圾回收机制的深度解析与优化 V8 JavaScript引擎采用了高效的垃圾回收机制,其中核心的实现特…...

less-loader的less转成CSS的底层原理

在现代Web开发中,CSS预处理器如LESS极大地提高了编写样式的效率和灵活性。而less-loader作为webpack的一个加载器,用于将LESS文件转换为CSS文件。本文将深入探讨less-loader如何工作,从解析LESS文件到生成最终的CSS文件的底层原理。 工作流程…...

解锁Flutter中的ProcessResult:让外部命令执行变得轻松

介绍 在我们的编程世界中,有时候我们需要与外部系统或者命令行交互。这就像在一场迷宫中寻找出口一样,我们需要向迷宫的门口询问正确的道路。而在 Flutter 中,这个问路的过程就是通过 ProcessResult 来实现的。 为什么要使用 ProcessResult…...

第二十五篇——信息加密:韦小宝说谎的秘诀

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么? 四、总结五、升华 一、背景介绍 加密这件事,对于这个时代的我们来说非常重要,那么…...

爱佳倍 北京网站/google浏览器官网

1. ETCD是什么ETCD是用于共享配置和服务发现的分布式,一致性的KV存储系统。该项目目前最新稳定版本为2.3.0. 具体信息请参考[项目首页]和[Github]。ETCD是CoreOS公司发起的一个开源项目,授权协议为Apache。提供配置共享和服务发现的系统比较多&#xff0…...

做酒业网站的要求/关键词优化难度查询

前言 是是非非,庸庸扰扰,今日上课记乱了int占的字节数,被全班嘲笑了,因此痛定思痛好好复习一下,其他的都是确定的,这也为可以执行提供了保障,唯独boolean不确定,这是为啥呢&#xf…...

免费婚庆网站模板/做一个网站需要多少钱

方法一: 思路:使用group by分组,再用count计算每组的个数,最后用having比较计算后的值大于1的数据。 select PRODUCT_CODE from TM_CIS_REQ_PRD_HIS_COUNT group by PRODUCT_CODE,CREDIT_ORG_CODE,REQ_DATE …...

上海医疗网站建设/百度新闻头条新闻

2019独角兽企业重金招聘Python工程师标准>>> #################################################################### ####################################################################基础模块 ##########################列表(list&#xff09…...

广州建站业务公司/九个关键词感悟中国理念

问题描述 一只青蛙一张嘴, 两只眼睛四条腿 两只青蛙两张嘴,四只眼睛八条腿 ⋯ ——— 来自未来的ACM社团的破冰游戏玩起了数青蛙的游戏 这个游戏对于通过大脑来计算的🐾毛毛🐾同学来说太困难了,而对于用CPU计算的小…...

wordpress如何修改视频上传大小/广州百度网站排名优化

一、导语 接下来我们来做一个左侧菜单&#xff0c;因为我们这个经常用到&#xff0c;接下来我们来看看这个这个咋做的&#xff0c;废话不多说了&#xff0c;进入实战状态吧。 二、效果图 三、html的代码 <!DOCTYPE html> <html lang"en"> <head>&l…...