Jag är ny när det gäller C++ och här kommer två antagligen ganska lätta frågor. Använd getch(); Ett litet exempel: Jag skulle rekommendera att man tar tangentbordsinläsning och grafik i DirectX, eftersom att Micro$oft i stort sett har eliminerat dos i Windows XP.Tangentläsning och grafik
Jag behöver en funktion för att läsa enstaka tangenttryckningar. cin räcker alltså inte. Det skulle vara en funktion som motsvarar basics InKey.
Min andra fråga gäller grafik. Vad jag har förstått så finns det inga inbyggda funktioner för grafik (typ linjer, cirklar). Var kan man hitta ett bra bibliotek?
Slutligen undrar jag om någon känner till en bra C++ sida så att jag slipper besvära er med dylika banala frågor.
/JacobSv: Tangentläsning och grafik
Du kan använda den på två sätt:
char a;
a = getch();
eller
char a;
gecth(a);
För att få tag i den skall du inkludera conio.h (eller <cconio> eller <conio> om du kör med namespaces)
Vad gäller grafik så är C/C++ lite speciellt, eftersom språket är fullständigt maskinoberoende. (Det finns kompilatorer för system helt utan filer).
Eftersom det är maskinoberoende så finns det inte någon möjlighet för språket att tillhandahålla grafikoperationer (man kan köra C++ i ett grafiklöst system). Det är därför viktigt att förstå att det du gör i grafik är beroende på operativsystem och vilken kompilator du använder.
Sök efter "Din kompilator" +"graphic library" så hittar du nog något som är bra. (Du bör även tänka på om du vill använda DOS- eller Windows-grafik.
/Niklas JanssonSv: Tangentläsning och grafik
<code>
const int KEY_DOWN_ARROW = 80;
const int KEY_UP_ARROW = 72;
const int KEY_LEFT_ARROW = 75;
const int KEY_RIGHT_ARROW = 77;
const int KEY_SPACE = 32;
kbkod = 0;
do{
if (kbhit()){
kbkod = getch();
if (kbkod == KEY_DOWN_ARROW)
y++;
else if (kbkod == KEY_UP_ARROW)
y--;
else if (kbkod == KEY_LEFT_ARROW)
x--;
else if (kbkod == KEY_RIGHT_ARROW)
x++;
}
} while (kbkod != KEY_SPACE);
</code>
Jag använder denna metoden för att markera position i ett luffarschack.
För att kunna använda kbhit() och getch() behöver du inkludera <conio>
Hoppas det är till någon nytta.
/ CarlSv: Tangentläsning och grafik