我正在尝试用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;
}
}
}
感谢您的帮助。
不,您不能将BGI用于控制台
BGI使用VGA图形视频模式,MS-DOS控制台使用VGA文本视频模式。这些都不一样——它们甚至使用不同的内存段。有关更多信息,请参阅:
- 程序集8086中的图形模式
在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);
CCD_ 1看起来也很多。我认为y+=20
或类似的字符之间的100像素太多了,你的窗口有多大?