技能状态

news/2025/1/13 8:02:46/

技能状态是游戏里面一个比较核心的元素,是指释放一个技能后对己方或者敌方产生的效果,而这个效果一般而言会持续一定的时间,比如攻击力增加,回血,按百分比受到魔法减伤,按固定值受到魔法减伤等状态。一个完整的游戏会有很多种的技能状态,往往上百种,那么怎么实现技能状态呢?

其实可以这样来做,使用一个技能状态就相当于调用了一个状态函数,这样我们就可以把这些技能状态具体用一个一个的函数来表示,类似这样:

char skill_status_1(...,...){} //(返回值之所以为char,是因为技能释放后,会有不同的状态,比如开始,重置,结束,清理等。)

char skill_status_2(...,...){}

...

char skill_status_n(...,...){}

其中1,2,....n是状态编号。

如此一来,假如想让玩家拥有一个技能状态,只需让该玩家调用对应的技能状态函数即可,瞬间灵活方便许多。

那么,怎样在程序中根据状态编号调用想要的状态函数呢?可以定义一组能够存放这些状态函数的数组,然后根据数组下标进行调用:

vector<char (*)(..,..)> fun_list;

并通过#define add_fun_list(fun) fun_list.push_back(skill_status_##fun) 宏定义进行各种状态函数的初始化,比如:

add_fun_list(1);//初始化技能状态1

add_fun_list(2);//初始化技能状态2

add_fun_list(3);//初始化技能状态3

...

这样只需要使用fun_list[n](...,...);即可调用相应的状态函数。

你可能会想到,为什么需要给技能状态加一个编号,这样做其实是为了策划能够方便配置,策划只需要在技能表中给某个技能配置一个技能状态编号,即可让该技能释放出来的时候拥有此技能状态效果。

释放一个技能后,可能会触发一些人物状态,技能状态对应触发的人物状态一般来说也是在技能表中配置的,也可以在其他配置文件配置或者在代码中定义。

 

 

 

 


http://www.ppmy.cn/news/710286.html

相关文章

技能树

简单的目录 1.C语言2.数据结构与算法3.ARM裸机开发4.应用编程与网络编程5.驱动开发与操作系统 1.C语言 C语言这一块的高频考点有预处理、关键字、数据类型、指针与内存管理。 &#xff08;1&#xff09;预处理有文件包含、宏定义、条件编译&#xff0c;其中最重要的是宏定义&a…

2023年7月1日【青书学堂】考试 计算机应用基础(高起专)

2023年7月1日【青书学堂】考试 计算机应用基础(高起专) 注意:答案仅供参考 成绩:88.8 分 第1题 单选题 在Word的编辑状态,按先后顺序依次打开了d1.doC、d2.doC、d3.doC、d4.doc 4个文档,当前的活动窗口的文档名为____。 A:d1.doc B:d2.doc C:d4.doc D:d3.doc 答案:C 第…

Android bionic和GNU glibc

安卓运行的是bionic而非glibc。Bionic是标准C库的实现&#xff0c;由谷歌为其Android操作系统开发。它与GNU C库&#xff08;glibc&#xff09;&#xff08;运行在标准linux发行版上&#xff09;的不同之处在于&#xff0c;它是为内存和处理器能力低于典型linux系统的设备设计的…

[ZT]如何正确收楼验收?

地产资讯播报&#xff1a;http://news.gz.soufun.com &#xff08;本文由集美组先生根据多年经验总结整理&#xff0c;提供给大家一份收楼参考&#xff0c;收楼在即的业主可以详细阅读一遍以做到心中有数&#xff09; 首先总结一下&#xff0c;一般在建筑&#xff08;装修&…

指数分布的概率密度推导

指数分布的概率密度&#xff0c;一直理解的不够深入&#xff0c;一直都不明白为什么是这么奇怪的形式&#xff0c;指数位置的分母为什么有个-theta&#xff0c;也一直不太明白该分布的特点&#xff0c;直到看到如下篇博文&#xff1a; 指数分布概率密度推导1 指数分布概率密度…

(己解决)黑苹果驱动英特尔核显疑问记录

这是一个求助文章&#xff01;求大佬帮忙解惑&#xff01; 求大佬提供一个4代的Opencore的EFI做下参考 型号&#xff1a;联想&#xff08;Lenovo&#xff09;拯救者 14.0英寸游戏本&#xff08;i7-4720HQ 8G 128G SSD1T GTX960M ) 联想拯救者14黑苹果EFI macOS Catalina 10.15…

dumpfile mysql_mysql dumpfile与outfile函数的区别

一直以为两个函数作用是相同的 经过简单测试发现还是有些区别的 如下表admin mysql> select * from admin; +-----+-----------+---------+ | uid | name | pass | +----+------------+---------+ | 1 | admin | baidusb | | 2 | root | hacksb | …

【正点原子MP157连载】第一章 Ubuntu系统安装-摘自【正点原子】【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7

1&#xff09;实验平台&#xff1a;正点原子STM32MP157开发板 2&#xff09;购买链接:https://item.taobao.com/item.htm?&id629270721801 3&#xff09;全套实验源码手册视频下载地址&#xff1a;http://www.openedv.com/thread-318813-1-1.html 4&#xff09;正点原子官…