如何在c ++ 11中退出线程?

时间:2018-09-16 02:53:42

标签: c++ multithreading c++11

我在c ++控制台中制作太空射击游戏。 当我制作游戏简介时,我遇到了问题。 我想在背景上实现印刷星。但如果用户按任意键,则进入下一个游戏屏幕。

要实现,我创建了打印星星的线程。但是我没有实现,如果按下任何键,则用于打印星号的线程将终止。

如何退出打印星星的线程

#include "spaceShootingGame.h"

int main(void)
{
    // Game Attribute Init
    system("mode con cols=100 lines=41");
    staticFunc::cursorHide();

    // Game Intro
    IntroMap map;
    thread starThread(IntroMap::star); 
// the thread for printing stars on background
    starThread.join();

// Game Start
    system("cls");


    system("pause");
    return 0;
}

static void star(void)
{
    while (true)
    {
        for (int i = 0; i < 4; i++)
        {
            for (int j = 0; j < 23; j++)
            {
                SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), colorArr1[i]);
                staticFunc::gotoxy(star1[j][0], star1[j][1]); cout << '*';
                SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), colorArr2[i]);
                staticFunc::gotoxy(star2[j][0], star2[j][1]); cout << '*';
            }
            staticFunc::delay(300);
        }
    }
    return ;
}

0 个答案:

没有答案