c语言 打字游戏,打字游戏初级版——C语言

其中用到了图形库graphics.h

在网络课程中学到的。

54b881f8bde8644fb8993a7bec20021d.png

#include

#include

#include

#include

#include

IMAGE backimg;

IMAGE bamime;

IMAGE state;

#include

#pragma comment(lib,"winmm.lib")

void Play()//进入游戏 ————有字母从上方落下,字幕的x坐标为坐标0-640(自定)y为一个自加的过程

{

cleardevice();//清屏

char TarLetter; //目标字母

char KeyLetter;

int LetterX;

int LetterY;

int speed=1;

int level=1; //定义难度

int score = 0;

while (true)

{

setcolor(WHITE);

setbkcolor(BLACK);//清屏并把背景变为相应颜色

setbkmode(TRANSPARENT);//背景格式 这里TRANSPARENT为透明

//putimage(0, 0, 640, 480, &backimg, 0, 0, SRCCOPY);

TarLetter = rand() % 26 + 65;//随机出现大写字母 26个字母中随机取 A ascll 65

LetterX = rand() % 620;//现在的设定大小为640,防止字母跑出范围

for (LetterY = 0; LetterY < 480; LetterY+=speed)//通过letterY++来控制速度

{

cleardevice();//清屏 否则看起来是一个线条,因为循环一直往下掉

outtextxy(500, 440, L"退出请按回车");

setbkmode(TRANSPARENT);//背景格式 这里TRANSPARENT为透明

//putimage(0, 0, 640, 480, &backimg, 0, 0, SRCCOPY);

settextstyle(20, 0,L"宋体");

outtextxy(LetterX, LetterY, TarLetter);//不断按位置输出目标字母

Sleep(20);//下落的时候一直清屏会闪动,防止字母的闪烁

if (kbhit())//判断有按键按下则判断

{

KeyLetter = getch();//接收按盘输入

if (KeyLetter == '\n'|| KeyLetter == '\r')//如果是回车就退出系统

{

char s[3];// = (char)score;

s[0]=score/10;

s[1] = score % 10;

settextstyle(30, 0, L"黑体");

outtextxy(220, 150, L"得分为 ");

outtextxy(380, 150, s[0]);

outtextxy(385, 150, s[1]);

outtextxy(220, 200, L"即将退出游戏");

Sleep(600);

exit(0);

}

else if(KeyLetter == TarLetter)

{

putimage(LetterX, LetterY, 271, 81,&bamime,0,0,SRCCOPY);

Sleep(30);//提供图片播放时间

score++;//分数加1;

level++;

if (level == 10) //每输入十个就 加快游戏速度

{

level = 0;

speed++;

}

break;//退出循环 再随机生成字母

}

}

}

}

getch();

}

void Welcome()

{

loadimage(&backimg, L"state.jpg", 640, 480);

putimage(0, 0, 640, 480, &backimg, 0, 0, SRCCOPY);

PlaySound(L"Maroon 5 - One More Night.wav", NULL, SND_FILENAME | SND_LOOP | SND_ASYNC);

setcolor(RED);//字体颜色

setbkmode(TRANSPARENT);//背景格式 这里TRANSPARENT为透明

settextstyle(60, 0, L"华文彩云");//字体格式

outtextxy(140, 50, L"打字练习系统");//在指定坐标打印文字

setcolor(BLUE);

settextstyle(20, 0, L"宋体");

outtextxy(100, 200, L"自学界面程序设计");

outtextxy(100, 250, L"打字练习系统");

outtextxy(100, 300, L"版本1.0");

outtextxy(100, 350, L"退出请按回车");

int colorR = 255, colorG = 0;

int speed = 5;

while (!kbhit()) //kbhit 表示接收任意键

{

setcolor(RGB(colorR, colorG, 0));//RGB(RED, GREEN, BLUE)颜色控制 设置3个数

outtextxy(260, 430, L"按空格键开始");

colorR += speed;

colorG -= speed;

if (colorG > 255|| colorG < 0)

{

speed = -speed;//当变色

}

Sleep(20);//控制字体闪烁的速度

}

}

int main()

{

SetConsoleTitle(L"打字游戏————Lee");

srand((unsigned int)time(NULL));

initgraph(640, 480);

loadimage(&state, L"state", 640, 480);

loadimage(&bamime, L"boom.jpg",271, 81);

Welcome();

Play();

getchar();

return 0;

}

加载了本地图片,如果需要的话可以下载玩玩,不喜勿喷。http://pan.baidu.com/s/1o8CnVJk

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值