当前位置:   article > 正文

easyx(键盘操作,音频输出)_easyx按键控制

easyx按键控制

键盘操作

获取键盘信息

getch()

getch需要包括头文件  #include<conio.h>  ,且getch是有返回值的。

比如说要获得键盘上的上下左右按键,那么就有不同于acsii码表的一组数值

  • 上:72
  • 下:80
  • 左:75
  • 右:77

所以用getch获取键盘信息可以这么用

  1. while(1)
  2. {
  3. cleardevice();
  4. setfillcolor(RED);
  5. fillcircle(x,y,20);
  6. int key = _getch();
  7. switch (key)
  8. {
  9. //上键
  10. case 72:
  11. case'w':
  12. case'W':
  13. y-=10;
  14. printf("上键\n");
  15. break;
  16. //左键
  17. case 75:
  18. case 'a':
  19. case 'A':
  20. x-=10;
  21. printf("左键\n");
  22. break;
  23. //下键
  24. case 80 :
  25. case 's':
  26. case 'S':
  27. y+=10;
  28. printf("下键\n");
  29. break;
  30. //右键
  31. case 77 :
  32. case 'd':
  33. case 'D':
  34. x+=10;
  35. printf("右键\n");
  36. break;
  37. }
  38. }

表达出来的效果就是:

 GetAsyncKeyState()

与getch不同的是,getch只能控制直走不能斜着走,而此函数可以斜着走;

    • 上:VK_UP
    • 下:VK_DOWN
    • 左:VK_LEFT
    • 右:VK_RIGHT

代码表示

  1. int x=0,y=0;
  2. while(1)
  3. {
  4. setfillcolor(RED);
  5. fillcircle(x,y,20);
  6. cleardevice();
  7. if (GetAsyncKeyState(VK_UP))//上键
  8. {
  9. y -= 5;
  10. }
  11. if (GetAsyncKeyState(VK_DOWN))//下键
  12. {
  13. y += 5;
  14. }
  15. if (GetAsyncKeyState(VK_LEFT))//左键
  16. {
  17. x -= 5;
  18. }
  19. if (GetAsyncKeyState(VK_RIGHT))//右键
  20. {
  21. x += 5;
  22. }
  23. }

在每次循环用cleardevice后,发现会导致每一次移动小球都会使得屏幕闪动,那么此时就要创建一个缓冲区

BeginBatchDraw和EndBatchDraw—缓冲区(批量绘图)

这俩个函数分别放在绘图之前和绘图之后,这样就会有一个缓冲区;

原理:在每次进行小球的运动操作时,都会现在缓冲区内进行变化然后再输出到当前屏幕内;

音频播放

头文件包含

#include<graphcis.h>

#include<mmsystem.h>//必须在graphics.h后面

#pragma comment(lib,"WINMM.LIB")  //静态库

打开,播放音乐 mciSendString()

打开: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);

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/94102
推荐阅读
相关标签
  

闽ICP备14008679号