大家好呀,我是yanxinchenji
最近开学了,作业有点多,停更了一段时间
当然,就算是开学,也抵挡不住我更新的激情!!
所以,我想教大家写一个c++的打怪游戏!!无缝剪辑
话不多说,我们开始吧!
第一部分:游戏架构作为一个打怪小游戏,必不可少的就是主角的各类属性与功能啦~
所以,我们要先定义亿些主角的属性,比如血量、攻击力、防御力
long long things[10000];//先定义10000个,后面再加
/*
1HP 2ATK 3DEF ......
//这里可以根据需要来自行添加
*/
定义完,我们需要思考一下这个游戏需要什么功能,比如商店,刷怪区等等
我这里给大家一个模板,不想动脑子的直接复制
void mianban();//定义干什么(省流)
void welcome();//欢迎
int main();//主函数
string where[10000];//1武器店2药店3家4状态
void home(); //家
string guaiwu[123];//1小怪物2大怪物3boss4凋零风暴
void fight();//战斗
void diaolingfengbao();//最终boss:凋零风暴
void daguai();//大怪物
void xiaoguai();//小怪物
void boss();//boss
按照我的这个模板,接下来需要编写第二主函数:''mianban()''
第二部分:第二主函数 2.1:实现界面我们在这里要思考,该如何去实现我们的界面?
我们可以用printf函数来输出这样一个界面:
printf("-----------------------------------------------------\n");
printf(" 选择行动 \n");
printf("1、与NPC战斗 2、行径 3、干活 \n");
printf("4、末日新生(第四章开放) 5、查看状态\n");
printf("6、公告 7、睡觉\n");
printf("-----------------------------------------------------\n");
printf("请选择>");
int l;
cin>>l;
2.2:函数的跳转
那么,界面也实现了,我们该怎么去跳转到功能函数呢?
说人话,就是把第二主函数当作一个桥梁,让玩家根据需要走到不同的地方
这个桥梁需要不同的分支,那我们如何去实现这种分支呢?
答案就是:switch语句!
具体switch的用法点这里
看了上面的百科,我们发现需要case语句来形成这座桥梁的分支
我们不妨先用伪代码来做一个模板:
switch(l)
{
case 1:
表达式1;
break;
case 2:
表达式2;
break;
.....
case n;
表达式n;
break;
}
当然,每个游戏都有防熊机制,免得游戏混乱
我们这时可以用defualt语句来避免这种情况:
default:
cout<<"请不要乱输!!";
Sleep(1000);
break;
我们已经学会了switch,接下来就要实现跳转了
把上述的表达式1、2换成类似于daguai();xiaoguai();这样的函数就可以啦!
2.3:功能的实现我们声明了函数,那我们怎么去定义函数呢?
你可以照着这样做:
void daguai()
{
if(things[1]<=0)
{
return daguai();
}
things[7]-=20;
int i=1,n=0,l=1,taopao,cg;
int lengque=0;
char r,w;
srand(static_cast(time(0))) ;
int randomNumber=rand();
int ddj=(randomNumber% 5)+6;
int dhp=ddj*100;
int dsh=ddj*20;
int djb=ddj*10;
int dfy=ddj*5;
switch(episodes)
{
case 1:
break;
case 2:
dhp*=2;
dsh*=2;
dfy*=2;
break;
case 3:
dhp*=5;
dsh*=5;
dfy*=5;
break;
case 4:
dhp*=10;
dsh*=10;
dfy*=10;
break;
}
cout<<"你面对的是"<>r;
if(r=='y')
{
int f=0;
while(things[1]>0&&dhp>0&&l!=123&&i<=20)
{
cout<<"第"<>l;
if(lengque>0&&f==1)
{
lengque--;
}
switch(l)
{
case 1:
if((things[11]/2)dfy )
{
dhp-=things[3]-dfy;
}
i++;
f=1;
break;
case 2:
if(things[11]*20)
{
cout<<"使用成功!!!"<
上述的是我写的《末日新生》里的打大怪函数,你可以把它修改一下,变得更加美观
我们不能只有这一个功能,所以我们需要更多的开发、研究
因篇幅限制,目前只能写这么多
所以更多的内容请看后续更新的2、3、4!
我是yanxinchenji,我们下次再见!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)