-3

我正在尝试使用图形在 C++ 中制作游戏。我正在使用代码块。我正在尝试制作一个玩家告诉他/她的名字或用户名的屏幕。我想让他们按下的每个字母都出现,但我做不到。这是我到目前为止所做的

void user_engleza()
{
    cleardevice();
    while(true)
    {
        char s[101];
        ifstream f("nume.in");
        ofstream g("nume.in");
        bool ok = false;
        char litera[1], nume[101];
        int x, y, j = -1;
        settextstyle(6, HORIZ_DIR, 7);
        outtextxy(300, 100, "Your name will be");
        x = 700;
        y = 150;
        while(ok == false)
        {
            cin >> litera[0];
            g << nume[++j];
            outtextxy(x, y, litera);
            y = y + 100;
            if(GetAsyncKeyState(VK_RETURN)) ok = true;
        }
    }
}

感谢您的帮助预期。

4

1 回答 1

0

不,您不能将 BGI 用于控制台!

BGI使用 VGA 图形视频模式,MS-DOS控制台使用 VGA 文本视频模式。这些不一样,它们甚至使用不同的内存段。有关更多信息,请参阅:

Windows中,控制台不是文本窗口,而是它的模拟。如果你得到它的句柄,你就可以访问它的画布并在上面渲染图形的东西,但这是 BGI 不可能的,因为这是从 MS-DOS 模拟旧的 BGI 窗口。

如何在 BGI 窗口(无控制台)上使用 BGI 渲染文本。要一次渲染一个字符,您需要传递长度为 1 而不是字符的字符串。所以有点像这样:

char c[2]={' ',0}; // null terminanted 1 char string

c[0]='A'; // any character you want
outtextxy(x,y,c);

y = y + 100;看起来也很多。我希望y+=20字符之间或类似的 100 像素太多了,您的窗口有多大?

于 2019-11-18T08:37:25.923 回答