打字母游戏+贴图技术

前面写了一篇C语言的打字母游戏的博客,但是未用上贴图,今天升级一下,加上贴图。即使是刚学完C语言也可以这种简单的方法做出高逼格的小游戏!

下面是源代码,关于其中一些从图形库中调用的函数,在前面讲“坦克大战地图”一篇博客中有讲解。

#include
#include//_kbhit()
#include
#include//srand()
//播放音乐
#include
#pragma comment(lib,"winmm.lib")//加载静态包,lib库

IMAGE background;//背景
IMAGE LB1, LB2;//LB1背景图,LB2屏蔽图
int main()
{
	initgraph(1000,600);//初始画布
	//加载图片
	loadimage(&background,"background.jpg",1000,600);
	loadimage(&LB1,"LB1.jpg",90,90);
	loadimage(&LB2, "LB2.jpg", 90, 90);
	//播放音乐
	mciSendString("open 1.mp3 alias music",0,0,0);//打开音乐
	mciSendString("play music repeat",0,0,0);//repeat循环播放音乐
	int x, y;//字母坐标
	char target;//字母
	int key;//获取用户按键值
	//char s[10] = { 0 };//输出分数
	//char f[10] = { 0 };
	//int score = 0;
	//int wrong = 0;
	srand((unsigned int)time(NULL));//生成随机种子
	//循环输出字母
	while (1)
	{
		target = 65 + rand()%26;//随机生成字母
		x = rand() % 910;//字母随机在x轴出现的位置
		for (y = 0; y < 600; y++)
		{
			BeginBatchDraw();//双缓冲,开始
			putimage(0, 0, &background);//贴背景图
			putimage(x,y,&LB2,SRCAND);//屏蔽图and运算
			putimage(x, y, &LB1, SRCPAINT);//背景图or运算
			setbkmode(TRANSPARENT);//设置背景混合模式,文字输出没有背景
			settextstyle(35,0,"黑体");//设置文字大小和字体
			outtextxy(x+38,y+48,target);//字母输出在萝卜上
			//判断用户是否按键
			if (_kbhit())
			{
				key = _getch();//获取用户按键值
				//判断用户按键值是否正确
				if (key == target || key == target + 32)
				{
					break;//正确退出for循环
				}
			}
			EndBatchDraw();//双缓冲结束
			Sleep(15);//休眠15毫秒
		}
	}
	getchar();//防止闪屏
	closegraph();//关闭画布
	return 0;

}

图片资源:

打字母游戏+贴图技术_第1张图片


打字母游戏+贴图技术_第2张图片


打字母游戏+贴图技术_第3张图片


其中音乐可以自行选择

你可能感兴趣的:(打字母游戏+贴图技术)