Я довольно новичок в c ++ и компьютерном программировании в целом, и я пытаюсь сделать гоночную игру на консоли для университетского проекта. В настоящее время я пытаюсь понять, как использовать windows .h и экранные буферы, и я следую онлайн-учебнику. Это мой код:
#include <iostream>
#include <stdio.h>
#include <Windows.h>
#include <conio.h>
#include <ctime>
#define WIDTH 80
#define FIELD_W 70
#define HEIGHT 35
using namespace std;
HANDLE whdl;
HANDLE rhdl;
int main() {
srand(time(0));
SMALL_RECT window_size = { 0, 0, WIDTH-1, HEIGHT-1 };
whdl = GetStdHandle(STD_OUTPUT_HANDLE);
rhdl = GetStdHandle(STD_INPUT_HANDLE);
SetConsoleTitle(L"---RAGE RACER---");
SetConsoleWindowInfo(whdl, TRUE, &window_size);
COORD buffer_size = { WIDTH, HEIGHT };
SetConsoleScreenBufferSize(whdl, buffer_size);
COORD CharacterBufferSize = { WIDTH, HEIGHT };
COORD CharacterPosition = { 0, 0 };
SMALL_RECT console_write_area = { 0, 0, WIDTH-1, HEIGHT-1 };
CHAR_INFO buffer[WIDTH * HEIGHT];
for (int y = 0; y < HEIGHT; ++y) {
buffer[WIDTH * y + 1].Char.AsciiChar = (unsigned char)99;
for (int x = 1; x < FIELD_W; ++x) {
buffer[x].Char.AsciiChar = ' ';
}
buffer[WIDTH * y].Char.AsciiChar = (unsigned char)99;
}
WriteConsoleOutput(whdl, buffer, CharacterBufferSize, CharacterPosition, &console_write_area);
getchar();
return 0;
}
Я знаю, что для l oop выключен, проблема в том, что всякий раз, когда я запускаю код, консоль покрывается красными пробелами, если я пытаюсь запустить другую программу, она работает нормально, и если я нажимаю клавиши, они, как всегда, написаны белым на черном. Я пользуюсь Visual Studio 2019. Заранее благодарю и извиняюсь за нецензурные выражения, которые я написал, даже не осознавая.