从零开始写C++打怪小游戏(1)

从零开始写C++打怪小游戏(1),第1张

大家好呀,我是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,我们下次再见!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/921371.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)