当前位置: 首页 > 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…...

美国通信业去监管趋势下的技术生态变革与产业应对策略

1. 从“去监管”信号看美国通信业格局重塑 2017年初,当阿吉特派伊(Ajit Pai)正式接任美国联邦通信委员会(FCC)主席时,他的一项早期举措——为广播公司和有线电视运营商削减文书工作规定——几乎在所有人的预…...

终极指南:3分钟解决Windows安装iPhone网络共享驱动难题

终极指南:3分钟解决Windows安装iPhone网络共享驱动难题 【免费下载链接】Apple-Mobile-Drivers-Installer Powershell script to easily install Apple USB and Mobile Device Ethernet (USB Tethering) drivers on Windows! 项目地址: https://gitcode.com/gh_mi…...

Factool开源框架:构建可信AI的事实核查自动化流水线

1. 项目概述:从“事实核查”到“可信AI”的基石工具在信息爆炸的时代,我们每天都被海量的文本内容包围——新闻稿、分析报告、产品介绍、学术论文,甚至是AI模型自己生成的回答。一个核心的挑战随之而来:如何快速、准确地判断一段文…...

2026年录音转换文字的软件推荐:从微信小程序到专业工具的实用对比

做视频或音频素材处理的时候,经常卡在这几个环节:转出来的文字有错别字需要反复核对、处理一个长视频得等半天、格式导出后没法直接用到其他软件。这些都是常见的痛点。本文会从实际应用出发,先重点讲一个相对高效的方案——微信小程序提词匠…...

【临床研究者必藏】Perplexity+Lancet联合检索SOP:从预印本争议到正式发表的全周期追踪方案

更多请点击: https://intelliparadigm.com 第一章:PerplexityLancet联合检索SOP的临床价值与范式变革 在循证医学实践加速数字化的当下,Perplexity(基于语义理解与推理增强的检索引擎)与《The Lancet》开放文献元数据…...

浏览器缓存揭秘:它什么时候“自动”生效?

🚀 浏览器缓存揭秘:它什么时候“自动”生效? 🤔 什么是浏览器缓存? 简单来说,浏览器缓存就是浏览器把下载过的资源(HTML, CSS, JS, 图片等)保存在本地硬盘或内存中。当再次请求相同…...

【ElevenLabs API接入黄金手册】:20年AI语音工程师亲授5大避坑要点与3小时极速上线实战路径

更多请点击: https://intelliparadigm.com 第一章:ElevenLabs API接入黄金手册:开篇导论与核心价值定位 ElevenLabs 以行业领先的语音自然度、情感表现力与多语言支持能力,成为生成式AI语音服务的事实标准。其API并非仅提供TTS基…...

终极UE4SS游戏Mod开发指南:从零开始掌握虚幻引擎脚本系统

终极UE4SS游戏Mod开发指南:从零开始掌握虚幻引擎脚本系统 【免费下载链接】RE-UE4SS Injectable LUA scripting system, SDK generator, live property editor and other dumping utilities for UE4/5 games 项目地址: https://gitcode.com/gh_mirrors/re/RE-UE4S…...

Sunshine游戏串流服务器:打造你的个人云端游戏平台

Sunshine游戏串流服务器:打造你的个人云端游戏平台 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 想要在任何设备上畅玩PC游戏?Sunshine游戏串流服务器是你…...

现代差旅电力管理实战:从充电安全到设备续航全攻略

1. 一次久违的飞行:无处不在的电力焦虑与科技依赖距离上一次飞行已经过去了整整十七个月。当我上周踏入纽约拉瓜迪亚机场,准备开启后疫情时代的首次旅程时,感觉像是进入了另一个维度。在我缺席的这段时间里,LGA完成了一场彻底的蜕…...