Delayed text (Need it more efficiently delayed) C++

巧了我就是萌 提交于 2019-12-10 12:12:36

问题


Hey guys I have another question, so I am working on a RPG and I am trying to use the Pokemon game type text were one letter pops up at a time. Here is my code:

#include <iostream>
#include <string>
#include <windows.h>
#include <sys/types.h>

using namespace std;

string name;

VOID WINAPI Sleep(
    _In_ DWORD dwMilliseconds
);

void pushX(int num) {
    for (int i = 0;i<num;i++)
        cout << " ";
}

void main() {

    system("cls");
    cout << "H";
    Sleep(50);
    cout << "e";
    Sleep(50);
    cout << "l";
    Sleep(50);
    cout << "l";
    Sleep(50);
    cout << "o";
    Sleep(50);
    cout << ",";
    Sleep(50);
    cout << " ";
    Sleep(50);
    cout << "W";
    Sleep(50);
    cout << "e";
    Sleep(50);
    cout << "l";
    Sleep(50);
    cout << "c";
    Sleep(50);
    cout << "o";
    Sleep(50);
    cout << "m";
    Sleep(50);
    cout << "e";
    Sleep(50);
    cout << " ";
    Sleep(50);
    cout << "T";
    Sleep(50);
    cout << "o";
    Sleep(50);
    cout << " ";
    Sleep(50);
    cout << "T";
    Sleep(50);
    cout << "h";
    Sleep(50);
    cout << "e";
    Sleep(50);
    cout << " ";
    Sleep(50);
    cout << "G";
    Sleep(50);
    cout << "a";
    Sleep(50);
    cout << "m";
    Sleep(50);
    cout << "e";
    Sleep(50);
    cout << "!\n";
    system("Pause");
    system("cls");
    Sleep(50);
    cout << "P";
    Sleep(50);
    cout << "l";
    Sleep(50);
    cout << "e";
    Sleep(50);
    cout << "a";
    Sleep(50);
    cout << "s";
    Sleep(50);
    cout << "e";
    Sleep(50);
    cout << " ";
    Sleep(50);
    cout << "T";
    Sleep(50);
    cout << "e";
    Sleep(50);
    cout << "l";
    Sleep(50);
    cout << "l";
    Sleep(50);
    cout << " ";
    Sleep(50);
    cout << "M";
    Sleep(50);
    cout << "e";
    Sleep(50);
    cout << " ";
    Sleep(50);
    cout << "Y";
    Sleep(50);
    cout << "o";
    Sleep(50);
    cout << "u";
    Sleep(50);
    cout << "r";
    Sleep(50);
    cout << " ";
    Sleep(50);
    cout << "N";
    Sleep(50);
    cout << "a";
    Sleep(50);
    cout << "m";
    Sleep(50);
    cout << "e";
    Sleep(50);
    cout << "!\n>> ";
    cin >> name;
    system("cls");
    Sleep(50);
    cout << "H";
    Sleep(50);
    cout << "e";
    Sleep(50);
    cout << "l";
    Sleep(50);
    cout << "l";
    Sleep(50);
    cout << "o";
    Sleep(50);
    cout << ",";
    Sleep(50);
    cout << " ";
    Sleep(50);
    cout << name;
    Sleep(50);
    cout << "!\n";
    system("pause");
    return;    

}

And this is obviously inefficient. It does the job but way too many lines of code. I also don't want just one line of code that runs on forever. I am looking for maybe a function that finds whenever I put a cout and makes every letter appear at a deley of .050 seconds or Sleep(50); thanks for the help U


回答1:


void pokeprint(char* s){
      int N = strlen(s);
      system("cls");
      for(int i=0; i<N;i++)
      {
       Sleep(50);
       cout << s[i];
      }
      cout << "\n";
      system("Pause");
      system("cls");
}


来源:https://stackoverflow.com/questions/42016655/delayed-text-need-it-more-efficiently-delayed-c

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!