【c语言小游戏----打字通(消灭苹果)】

//需要先装第三方图形库easyx
#include <stdio.h>
#include <easyx.h>		//要用easyx 头文件  graphics.h
#include <time.h>
#include <conio.h>      //控制IO
#include <mmsystem.h>				//放音乐用的头文件
#pragma comment(lib,"winmm.lib")	//放音乐用的库
#define w 800
#define h 400
int main()
{
	int fen = 0;
	long long speed=10;				//速度,值越小,越快
	char ss[20]="分数: 0",key;		
	srand(time(0));
	initgraph(w, h);				//建立界面
	setbkmode(0);					//字体背景透明
	settextstyle(25, 0, "宋体");		//设置字体
	mciSendString("open quick.mp3", 0, 0, 0);	//播放音乐
	mciSendString("play quick.mp3", 0, 0, 0);
	IMAGE bjtu, A1, A2;							//图形对象
	loadimage(&bjtu, "1.jpg", w, h);			//读入这三张图,与项目文件放在一起
	loadimage(&A1, "apple0.jpg", 50, 50);		
	loadimage(&A2, "apple1.jpg", 50, 50);
	putimage(0, 0, &bjtu);						//设置背景图片
	int x, y;
	while (1)
	{
		x = rand() % 750;						//随机位置产生苹果
		char c = 'A' + rand() % 26;				//苹果的字符随机
		for (y = 0;y < h;y++)					//苹果下落
		{
			BeginBatchDraw();					//批量画图
			putimage(0, 0, &bjtu);
			outtextxy(0, 0, ss);
			putimage(x - 18, y - 18, &A1, SRCPAINT);
			putimage(x - 18, y - 18, &A2, SRCAND);
			outtextxy(x, y, c);
			EndBatchDraw();						//批量画图结束,将图片输出
			Sleep(speed);						//屏幕静止,用来产生动态效果
			if (_kbhit())						//检测是否有按键按下,有按键按下为真
			{
				key = _getch();					//接受按下的键值
				if (key == c) {					//如果按下的和字母相同
					fen++;						//分数更新
					sprintf_s(ss, "分数: %d", fen);
					break;						//结束本次循环,开启下一个苹果
				}else if(key=='1'){				//按1进入快速模式
					mciSendString("close quick.mp3", 0, 0, 0);			//切换音乐
					mciSendString("open slow.mp3", 0, 0, 0);
					mciSendString("play slow.mp3", 0, 0, 0);
					speed = 5;
				}else if (key == '2') {
					mciSendString("close slow.mp3", 0, 0, 0);
					mciSendString("open quick.mp3", 0, 0, 0);
					mciSendString("play quick.mp3", 0, 0, 0);
					speed = 15;
				}
				else if (key == ' ') {					//按下空格暂停
					outtextxy(380, 200, "空格建继续");
					while (!_kbhit()) {
						key = _getch();
						if (key == ' ')break;			//再次按下空格继续游戏
					}
				}
			}
		}
		if (y == h) {		//苹果到底后仍然没被按下,游戏失败
			outtextxy(280, 200, "游戏结束,空格继续");//屏幕输出文字
			while (!_kbhit()){
				key = _getch();
				if (key == ' ') {
					fen = 0;				//重新积分
					sprintf_s(ss, "分数: %d", fen);
					break;
				}
			}
		}
	}
	return 0;
}

游戏截图
游戏截图
#资源图片:
背景
1.jpg
在这里插入图片描述
apple0.jpg
请添加图片描述

apple1.jpg
请添加图片描述

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值