技能状态

技能状态是游戏里面一个比较核心的元素,是指释放一个技能后对己方或者敌方产生的效果,比如按百分比受到魔法减伤,按固定值受到魔法减伤等。一个完整的游戏中会有很多的技能状态,那么怎么实现技能状态的接口呢?

假设技能状态的实现是这样的,使用一个技能状态相当于调用了一个状态函数,类似:

char skill_status_1(...){}

char skill_status_2(...){}

...

char skill_status_n(...){}

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

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

vector fun_list;

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

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

 

 

 

 

你可能感兴趣的:(游戏开发)