赞
踩
getch需要包括头文件 #include<conio.h> ,且getch是有返回值的。
比如说要获得键盘上的上下左右按键,那么就有不同于acsii码表的一组数值
所以用getch获取键盘信息可以这么用
-
- while(1)
- {
- cleardevice();
- setfillcolor(RED);
- fillcircle(x,y,20);
-
- int key = _getch();
-
-
- switch (key)
- {
- //上键
- case 72:
- case'w':
- case'W':
- y-=10;
- printf("上键\n");
- break;
- //左键
- case 75:
- case 'a':
- case 'A':
- x-=10;
- printf("左键\n");
- break;
- //下键
- case 80 :
- case 's':
- case 'S':
- y+=10;
- printf("下键\n");
- break;
- //右键
- case 77 :
- case 'd':
- case 'D':
- x+=10;
- printf("右键\n");
- break;
- }
- }

表达出来的效果就是:
与getch不同的是,getch只能控制直走不能斜着走,而此函数可以斜着走;
代码表示
- int x=0,y=0;
- while(1)
- {
- setfillcolor(RED);
- fillcircle(x,y,20);
- cleardevice();
-
-
-
-
- if (GetAsyncKeyState(VK_UP))//上键
- {
- y -= 5;
- }
- if (GetAsyncKeyState(VK_DOWN))//下键
- {
- y += 5;
- }
- if (GetAsyncKeyState(VK_LEFT))//左键
- {
- x -= 5;
- }
- if (GetAsyncKeyState(VK_RIGHT))//右键
- {
- x += 5;
- }
- }

在每次循环用cleardevice后,发现会导致每一次移动小球都会使得屏幕闪动,那么此时就要创建一个缓冲区
这俩个函数分别放在绘图之前和绘图之后,这样就会有一个缓冲区;
原理:在每次进行小球的运动操作时,都会现在缓冲区内进行变化然后再输出到当前屏幕内;
#include<graphcis.h>
#include<mmsystem.h>//必须在graphics.h后面
#pragma comment(lib,"WINMM.LIB") //静态库
打开:mciSendString("open 音乐文件",NULL,0,NULL);
播放:mciSendString("paly 音乐文件",NULL,0,NULL);
关闭:mciSendString("close 音乐文件",NULL,0,NULL);
当音乐文件比较长时,可以在打开音频的音乐文件后面加上alias 新名字,下次再次提及到这个音乐文件的时候可以用新名字代替;
如:
mciSendString("open C:\\Users\\HUAWEI\\Music\\入睡.mp3 alias BGM", NULL, 0, NULL);
mciSendString("play BGM repeat", NULL, 0, NULL);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。