在复制内存时检测到可能的 I/O 争用条件。默认情况下,I/O 包不是线程安全的。在多线程应用程序中,必须以线程安全方式(如 TextReader 或 TextWriter 的 Synchronized 方法返回的线程安全包装)访问流。这也适用于 StreamWriter 和 StreamReader 这样的类。 mpc 游戏中的文件化指令_手机C语言开发环境_E界安卓冒泡社区(mrpej.com)
今日夜猫:夜猫henan.喜欢TA
.广播: ------------
论坛.新帖.热帖.精帖.发帖
返回 发贴 设置 管理
查看贴子

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

*/
楼主信息
 火烧云(37592) OFFLINE
 E界功臣 御史中丞 .
 普通会员 来自:交友
[楼主]:博客 相册 贴子 回复
[操作]:管理 举报 下载 收藏
[分享]:空间 微博 家族 更多
[签名]:我就是火烧君
赞 (8) 倒 (6)
发表回复


[4楼]

火烧云(37592) OFFLINE 07-13 11:56
E界功臣.御史中丞.普通会员
哦,看漏了,原来我释放了的
 

 回复 只看TA

[板凳]

火烧云(37592) OFFLINE 07-13 11:55
E界功臣.御史中丞.普通会员
糟糕,忘了释放内存了
 

 回复 只看TA

[椅子]

火烧云(37592) OFFLINE 07-13 11:53
E界功臣.御史中丞.普通会员
回复1楼:这是指令,可以一级级地执行事件。我的solo可以用这种方式来写英雄的技能。
 

 回复 只看TA

[沙发]

每天进步一点(47241) OFFLINE 07-12 11:06
E界诸侯.亲王.普通会员
就像rc文件用来保持数据一样
 

 回复 只看TA

更多回贴(4) 楼主回复

【E友的最新回帖动态】
[求助]帮帮忙吧!。。[nickna
高手进来!!!!
求师傅,有谁愿意
经典珍藏超美界面最省流量QQ
『天门』EJ~小伟将你要的QQ

返回上级 返回首页
首页合作客服留言QQ群简版
E界,引领视界
mrpej.com @CopyRight