Index Nyheter Kurs Källkod Artiklar Musik Grafik Projekt Länkar E-mail
Programmera Spel i C

Set_Video_Mode ( )

Att ställa om skärmen till rätt upplösning är det första en spelprogrammerare måste lära sig. Det finns en mängd olika skärmupplösningar att välja på. Vi kommer enbart att använda oss av en skärmupplösning på 320x200 punkter (Mode 13h).

Att ställa in olika lägen gör vi enklast genom att anropa ett BIOS avbrott, nämligen avbrott 10h. Det enda som krävs är denna enkla funktion:


void Set_Video_Mode(int mode)
{
union REGS inregs,outregs;

inregs.h.ah = 0;                   
inregs.h.al = (unsigned char)mode;  

int86(0x10, &inregs, &outregs);
}
		

Om du nu vill ställa in Mode 13h, anropar du funktionen på följande sätt:

Set_Video_Mode(0x013);

Enkelt, va?

Men hur gör jag om jag vill ändra tillbaka till textläget? Jo, du gör precis som när du ställde in grafikläget, men med den skillnaden att du nu anger 0x03 som parameter istället för 0x13.

Nedan följer en lista på några intressanta skärmlägen du kan ställa in med hjälp av vår funktion. Observera att alla lägen anges hexadecimalt!

Läge Upplösning Färger
1 40x25 (text) 16
3 80x25 (text) 16
4 320x200 4
6 640x200 2
D 320x200 16
E 640x200 16
10 640x350 16
11 640x480 2
12 640x480 16
13 320x200 256

Som du ser är det endast Mode 13h som använder 256 färger. Eftersom 256 färger är ett absolut minimum när det gäller spel, så är vi tvungna att använda det. Det finns lägen med högre upplösning än 320x200, och samtidigt använder 256 färger, men dessa är betydligt svårare både att ställa in och programmera i.

Sätt dig nu och exprimentera med de olika skärmlägena tills du kan dem utan och innan. Sedan är det dags att gå vidare med nästa funktion. Lycka till!



Av: Erik Heinemark 1998.

Tillbaka Nästa