mpc 游戏中的文件化指令
2014/7/11 20:32:00 (272) 手机C语言开发环境 /*【程序名】游戏中的文件化指令
【类别】教程程序
【作者】火烧云
【qq】2268881308
【时间】2014.07.7
【介绍】
这是我在写游戏时想到的一些方法,应该对新手有些帮助,我就写了个源码来说明。
在我们写moba游戏的时候,或者说玩游戏,会遇到一种现象,有的角色释放技能的之前,要选定目标,再计算技能效果。技能效果有:减速,物理伤害,魔法伤害,套盾,消极效果等。然后还要计算效果的量。例如减速20%,物伤114。
在这些情况下,角色都要请求我们发出指令(选定目标等等),系统也会发出指令(减速20%)。
moba游戏的英雄有很多,我们不能将指令写在源码上,即使用函数,也有不小的负担,这就要求我们用文件化的方式写静态指令。
静态指令就是游戏中定好了了,不会每帧都修改,也不会由玩家来定。
下面用源码解释。
!源码后面还有内容哦!
!源码后面还有内容哦!
*/
#include <base.h>
int32 f;
int8 *p=malloc(4);
//申请一个大小为4的内存块
int init(void)
{
pre();
st_sway(p[0],p[1]);
st_sway(p[2],p[3]);
//执行指令
if(f==0)
printf(“%d %d %d %d“,p[0],p[1],p[2],p[3]);
free(p);
close(f);
//关闭文件
exit();
return 0;
}
void pre()//准备文件
{
f=open(“c/游戏文件化指令/test.ct“,1);
//打开文件,取得文件指针
read(f,p,4);
//将文件读入内存中
}
void st_sway(uint8 ws,uint8 wef)
//接收指令(ws为效果方式,wef为效果程度)
{
switch(ws)
{
case 1:
//指令1,输出平方
st_printjc(wef);
break;
case 2:
//指令2,输出相反数
st_printxf(wef);
break;
}
}
void st_printjc(uint8 wef)
{
printf(“%d的平方是:%d\n“,wef,wef*wef);
}
void st_printxf(uint8 wef)
{
printf(“%d的相反数是:%d\n“,wef,-wef);
}
int event(int type, int p1, int p2)
{
if(KY_DOWN == type)
{
switch(p1)
{
case _SRIGHT:
exit();
break;
case _1:
break;
}
}
return 0;
}
int pa*e(void)
{
return 0;
}
int resume(void)
{
return 0;
}
/*
看了源码之后,觉得很简单吧,其实游戏中的处理比这个要麻烦的多,这里只有两个指令。我们从简单的开始,复杂的就不在话下了。重要的是多练和多思考,还要有点耐性,能做到这些做成你心目中的游戏应该不会是不可能的。
最后,有没有发现本教程的不完善之处,没错,值传递用多了,你能在实际中避免吗?
by火烧云
qq 2268881308
*/