Read_Pixel( )
Okej, då var jag äntligen tillbaka efter ett litet upphåll. Jag tänkte börja
med en mycket enkel funktion, som helt enkelt läser av den aktuella färgen på den
angivna skärmkoordinaten. Men vad har jag för nytta av en sådan funktion? Tja, den hör väl
inte till de allra nyttigaste funktionerna i vårat biblioteket, men den kan vara bra att ha
om man t.ex. gör ett enkelt "maskspel" och vill veta när masken stöter på ett visst
objekt.
Den här funktionen är väldigt lik Put_Pixel-funktionen, så jag rekommenderar att
du läser igenom den lektionen innan du ger dig på den här. Den här gången tänker jag gå rakt på sak
och skriva ut den kompletta funktionen med en gång. Så här ser den ut:
int Read_Pixel(int x,int y)
{
return((int)(video_buffer[((y<<8) + (y<<6)) + x]));
}
Har du någonsin sett något enklare? Nahe, jag tänkte väl det. Funktionen returnerar helt enkelt
värdet på den angivna skärmkoordinaten. Den enda oklarheten
skulle väl i så fall vara de där bitshiftningstecknen, men dem har jag ju redan berättat
om. Men jag kan nog fräscha upp ditt minne lite genom att berätta för dig att (y<<8) + (y<<6) + x är exakt
samma sak som: 256*y + 64*y + x, vilket i sin tur är det samma som:
320*y + x. Enda skillnaden är att det första uttrycket är bra mycket snabbare än det sistnämnda.
Jaha, med dom orden tänkte jag avrunda den här lektionen och
be dig ladda hem den coola demofilen. Vi ses snart!
|