栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言小项目—数字雨—简单易学

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言小项目—数字雨—简单易学

C语言数字雨小项目

视频教程在B站“蒸汽小毛”

编译工具:vs2013、图形库easyX

该程序在VS2013上可完美运行。

项目源码: 
#include
#include //图形库头文件
#include
#define WIDTH 1615//960
#define HEIGTH 1006//640
#define STR_SIZE 20 //数字雨数组最大存储
#define STR_NUM 128 //数字雨的串数
#define STR_WIDTH 15 //字符串
struct Rain //雨的结构
{
	int x; //数字雨横向位置
	int y; //y坐标
	int speed; //下降速度
	char str[STR_SIZE]; //数字雨数组
}rain[STR_NUM];
char CreateCh()
{
	char temp = 0;
	int flag = rand() % 3;//0 1 2
	if (flag == 0)
	{
		temp = rand() % 26 + 'a';
	}
	else if (flag == 1)
	{
		temp = rand() % 26 + 'A';
	}
	else
	{
		temp = rand() % 10 + '0';
	}

	return temp;
}
void GameInit()
{
	//初始化基础数据
	for (int i = 0; i < STR_NUM; i++)
	{
		rain[i].x = i*STR_WIDTH;
		rain[i].y = rand() % HEIGTH;
		rain[i].speed = rand() % 5 + 5;//5 6 7 8 9 10
	}
	//初始化字符串
	for (int i = 0; i < STR_NUM; i++)
	{
		for (int j = 0; j < STR_SIZE; j++)
		{
			rain[i].str[j] = CreateCh();
		}
	}
}
void GameDraw()
{
	cleardevice();
	for (int i = 0; i < STR_NUM; i++)
	{
		for (int j = 0; j < STR_SIZE; j++)
		{
			outtextxy(rain[i].x, rain[i].y-STR_WIDTH*j, rain[i].str[j]);
			settextcolor(RGB(0,255-13*j,0));
		}
	}
}
void GamePlay()
{
	for (int i = 0; i < STR_NUM; i++)
	{
		rain[i].y += rain[i].speed;
		if (rain[i].y-STR_SIZE*STR_WIDTH>HEIGTH)
		{
			rain[i].y = 0;
		}
	}
}
void ChangeCh()
{
	for (int i = 0; i < STR_NUM; i++)
	{
		rain[rand()%STR_NUM].str[rand()%STR_SIZE] = CreateCh();
	}
}
int main()
{
	initgraph(WIDTH,HEIGTH);
	srand(GetTickCount());
	GameInit();
	DWORD t1, t2;
	t1 = t2 = GetTickCount();
	while (1)
	{
		BeginBatchDraw();
		GameDraw();
		ChangeCh();
		if (t2 - t1 > 20)//使游戏下落延时
		{
			GamePlay();
			t1 = t2;
		}
		t2 = GetTickCount();
		EndBatchDraw();
		//Sleep(20); //使整个程序延时
	}

	getchar();
	closegraph();
	return 0;
}

这是简易版本的,以后大概会发复杂炫酷点的。

对于刚学完C语言的初学者,直接做这种小项目也是一件非常困难的事情,中间还有很大的鸿沟。老师上课讲授的知识非常有限,大部分知识还需要同学们自己去探索。程序的写法也有很多很多种,不必拘于一种,也期待各位写出更加简练高效的程序。个人小白,如有错误也希望各位大佬能够指出。需要源码的可以来我的学习群里领取,八零六零,四一,五久久。更多学习资料和小游戏源码都有,还有一群一起学习C语言C++的好兄弟!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/529284.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号