Czy da sie zmienic kolor tła bez użycia biblioteki windows.h. Robię grę konsolowa i chcialam, zeby kursor mial jakis kolor. wygląda to tak. zrobilam to z uzyciem biblioteki windows.h, jednak nie moge jej uzyc, bo w wymaganiach mam ze mozna uzywac tylko standardowych bibliotek c++. czy da sie zrobic to jakos inaczej?
Wypisać komendy ANSI/VT100, zwane inaczej inaczej Escape codes poprzez zwykły std::cout lub printf. Na Linux w konsoli działa na pewno, czy na Windows zadziała, musiałbyś sprawdzić.
https://gist.github.com/fnky/458719343aabd01cfb17a3a4f7296797
https://en.wikipedia.org/wiki/ANSI_escape_code
https://invisible-island.net/xterm/ctlseqs/ctlseqs.html
andrzejlisek napisał(a):
[…] czy na Windows zadziała, musiałbyś sprawdzić.
Od jakiegoś czasu windowsowy terminal domyślnie obsługuje ANSI/VT100, a od dłuższego czasu też obsługiwał, chociaż nie domyślnie — https://learn.microsoft.com/en-us/windows/console/console-virtual-terminal-sequences
Do zmiany koloru tła jest np. kod \033[48;<2>;<r>;<g>;<b>m
(rgb 0..255). Można też spróbować zmieniać kolor samego kursora kodem \033]12;<kolor>\007
, gdzie kolory <kolor>
podaje się po nazwach green
, darkgreen
, lightgreen
, etc. albo jako RGB w hexie, np. #10FF10
.