• C++游戏设计教程(2)—— Sleep睡眠与常用system


     哈喽大家好,我是iecne,本期为大家带来的是CPP/C++游戏设计教程的第②期—— Sleep睡眠与常用system ,包教包会,快来看看吧!

    大家都知道,初学C++或者各种语言,面对枯燥无比的题目,脑子要爆的感觉是十分难受的,不妨会想设计一款游戏玩玩,但是由于能力不足、不知道如何设计而放弃。而这一专栏将会教会你们如何设计一款简单的Cpp游戏点赞收藏关注评论支持以下博主,蟹蟹


    目录

    一.运用位置

    1.球类游戏

    2.所有游戏的输出

    二.Sleep的使用

    A.windows系统

    B.Unix系统

    1.格式的注意(除粗体外可忽略)

    2.用法

    三.Sleep的实际应用(制作游戏必用,干货)

    四.system(任意、清屏)

     五.总结

     系列文章目录


    一.运用位置

    Sleep函数可以使计算机程序(进程,任务或线程)进入休眠,使其在一段时间内处于非活动状态。当函数设定的计时器到期,或者接收到信号、程序发生中断都会导致程序继续执行

    1.球类游戏

    1. while(a!=0){
    2. s=rand()%9;
    3. if(a!=0&&s==0)
    4. {
    5. color(0);
    6. cout << b[i];
    7. a--;
    8. i++;
    9. }
    10. if(a!=0&&s==1)
    11. {
    12. color(1);
    13. cout << b[i];
    14. a--;
    15. i++;
    16. }
    17. if(a!=0&&s==2)
    18. {
    19. color(2);
    20. cout << b[i];
    21. a--;
    22. i++;
    23. }
    24. if(a!=0&&s==3)
    25. {
    26. color(3);
    27. cout << b[i];
    28. a--;
    29. i++;
    30. }
    31. if(a!=0&&s==4)
    32. {
    33. color(4);
    34. cout << b[i];
    35. a--;
    36. i++;
    37. }
    38. if(a!=0&&s==5)
    39. {
    40. color(5);
    41. cout << b[i];
    42. a--;
    43. i++;
    44. }
    45. if(a!=0&&s==6)
    46. {
    47. color(6);
    48. cout << b[i];
    49. a--;
    50. i++;
    51. }
    52. if(a!=0&&s==7)
    53. {
    54. color(7);
    55. cout << b[i];
    56. a--;
    57. i++;
    58. }
    59. if(a!=0&&s==8)
    60. {
    61. color(8);
    62. cout << b[i];
    63. a--;
    64. i++;
    65. }
    66. Sleep(happyday);
    67. }
    68. if(truefalse1!=false){
    69. system("cls");
    70. int getch(a);
    71. }

    以上代码由作者原创小游戏Supreme basketball中篮球实战的代码


    2.所有游戏的输出

    1. int s=1000;
    2. cout<<"……";
    3. Sleep(2*s);
    4. printf("……");
    5. Sleep(2.5*s);
    6. ……

    二.Sleep的使用

    A.windows系统

    在Windows操作系统中,sleep()函数需要一个以毫秒为单位的参数代表程序挂起时长,sleep()函数包含在kernel32.dll动态链接库中,但在批处理文件中没有可以直接运行的sleep()函数。可以在如Windows 2003资源包等Windows工具集中找到sleep()函数


    B.Unix系统

    在Unix类的操作系统中,调用sleep()函数需要一个以秒为单位的参数,需要更精确的时间控制可以使用nanosleep()函数。


    1.格式的注意(除粗体外可忽略)

    在VC中Sleep中的第一个英文字符为大写的"S"

    在标准C中是sleep(S不要大写),下面使用大写的来说明,具体用什么看你用什么编译器。简单的说VC用Sleep,别的一律使用sleep。

    Sleep函数的一般形式:

    Sleep(unsigned long);

    其中,Sleep()里面的单位,是以毫秒为单位,所以如果想让函数滞留1秒的话,应该是Sleep(1000);

    在Linux下,sleep中的“s”不大写

    sleep()单位为秒,usleep()里面的单位是微秒。在内核中,sleep的实现是由pause函数和alarm函数两个实现的。

    特别注意在Codeblocks环境下是无法使用sleep函数的,因为在windows上Codeblocks采用mingw(Gnu在Window环境下的编译器,可以充分使用WindowsApi)作为编译器,而在stdlib.h中sleep的说明如下:_CRTIMP void __cdecl __MINGW_NOTHROW _sleep (unsigned long) __MINGW_ATTRIB_DEPRECATED;可以认为mingw舍弃了sleep函数,建议用Sleep实现sleep。


    2.用法

    用法太过于简单

    那里要延迟输出或者运行,就加上Sleep(秒数*1000);

    结束,完工

    看到这里,给个点赞收藏关注支持下博主吧


    三.Sleep的实际应用(制作游戏必用,干货)

    以下来自作者原创小游戏Supreme basketball的代码

    1. coutAIO("欢迎来到《Supreme basketball》",3);
    2. gotoxy(3,2);
    3. coutAIO("作者:iecne",2);
    4. gotoxy(4,2);
    5. coutAIO("祝你游戏愉快\n",4);
    6. gotoxy(5,2);
    7. coutAIO("(*^_^*)\n");
    8. system("pause");
    9. system("cls");

    传输函数

    1. void coutAIO(string b,int happyday = 20,bool truefalse1 = 0)
    2. {
    3. int i=0,s=0;
    4. long long a=numberaio(b);
    5. while(a!=0){
    6. s=rand()%9;
    7. if(a!=0&&s==0)
    8. {
    9. color(0);
    10. cout << b[i];
    11. a--;
    12. i++;
    13. }
    14. if(a!=0&&s==1)
    15. {
    16. color(1);
    17. cout << b[i];
    18. a--;
    19. i++;
    20. }
    21. if(a!=0&&s==2)
    22. {
    23. color(2);
    24. cout << b[i];
    25. a--;
    26. i++;
    27. }
    28. if(a!=0&&s==3)
    29. {
    30. color(3);
    31. cout << b[i];
    32. a--;
    33. i++;
    34. }
    35. if(a!=0&&s==4)
    36. {
    37. color(4);
    38. cout << b[i];
    39. a--;
    40. i++;
    41. }
    42. if(a!=0&&s==5)
    43. {
    44. color(5);
    45. cout << b[i];
    46. a--;
    47. i++;
    48. }
    49. if(a!=0&&s==6)
    50. {
    51. color(6);
    52. cout << b[i];
    53. a--;
    54. i++;
    55. }
    56. if(a!=0&&s==7)
    57. {
    58. color(7);
    59. cout << b[i];
    60. a--;
    61. i++;
    62. }
    63. if(a!=0&&s==8)
    64. {
    65. color(8);
    66. cout << b[i];
    67. a--;
    68. i++;
    69. }
    70. Sleep(happyday);
    71. }
    72. if(truefalse1!=false){
    73. system("cls");
    74. int getch(a);
    75. }
    76. cout << endl;
    77. }

    逐个停顿输出


    四.system(任意、清屏)

    c++清屏函数是“system("cls")”,执行控制台命令cls,功能是清屏,清除所有屏幕显示信息 

    1. #include
    2. using namespace std;
    3. int main()
    4. {
    5. system("cls");
    6. return 0;
    7. }

    c++按任意键继续的函数是“system("pause")”,执行控制台命令pause,功能是显示按任意键继

    续,短暂的暂停并且等待用户的信号

    1. #include
    2. using namespace std;
    3. int main()
    4. {
    5. system("pause");
    6. return 0;
    7. }

    两者都是游戏中常用的函数


     五.总结

    本节课主要是讲解了Sleep和system的一些用法,至此Sleep的思想博主已经彻彻底底分享完了,而system的一些用法以后还会为大家继续分享,相信大家对这个逻辑有了一定的理解,大家可以自己动手敲敲代码,感受一下

    包教包会,帅的人已然点赞收藏关注,而丑的人还在犹豫,被犹豫了,快三连吧!


     系列文章目录

     本期收录于博主的专栏——C++游戏设计教程,感兴趣的朋友们可以订阅,查看其它专栏。

    C++游戏设计教程_iecne的博客-CSDN博客

    C++游戏设计教程(1) 随机数

    C++游戏设计教程(2) Sleep睡眠与常用system


     感谢每一个观看本篇文章的朋友,更多精彩敬请期待:iecne的博客_CSDN博客-C++保姆级入门教程领域博主

    文章存在借鉴,如有侵权请联系修改删除!

  • 相关阅读:
    ThingsBoard的版本控制整合gitee
    CPU、内存、磁盘性能监控
    TCP关闭的两种方法概述
    Redis Set和Sorted Set
    vue启动项目,npm run dev出现error:0308010C:digital envelope routines::unsupported
    Pariatur sint mollitia odit eveniet.Dazu Name tragen.
    c语言实现数据结构中的单向链表
    MySQL 8.0.13升级到8.0.35记录 .NET
    26thCSIG云上微表情:基于面部动作单元(AU)的微表情分析
    K8S哲学 - probe 探针
  • 原文地址:https://blog.csdn.net/CSDN_linyanchen/article/details/126042719