Also noch schnell:
Also sagen wir wir haben eine Bitmap aus 32x8 multicolor Pixeln.
Jetzt erzeugen "wir" 32*4 Chars daraus.
Der erste Char ist einfach die Pixel (0,0) bis (4,8).. Der zweite Char ist von Pixel(1,0) bis (5,8).. Der dritte Char ist von Pixel(2,0) bis (6,8). Der vierte von von Pixel(3,0) bis Pixel(7,8). Der fünfte von von Pixel(4,0) bis Pixel(8,0).. Etc.... bis zum Character 128..
Für das Zoomen zeichnen wir eine Linie auf den Bildschirm also 40 Zeichen.
wir haben eine float Schrittgröße, also zum Beispiel 1, 4, 8 oder 2..
float charIndex, stepSize = 1;
for (i = 0; i < 40; ++i) {
screen[i] = (int)charIndex;
charIndex += stepSize;
}
Wenn die Stepsize 4 ist "sehen wir" das original Bild.. Da ja jeder Character 4 mal da ist (nur nen bissl verschoben)..
Wenn die StepSize 2 ist sehen wir das Bild um Faktor 2 vergrößert.. Wenn die StepSize 8 ist ist das Bild um die Hälfte geschrumpft..
Das ist jedenfalls ein Zoom Ansatz mit dem man sehr weit kommt. Extrem viele Oldchool zooms basieren auf diesem Ansatz..
Hier bei ungefähr 5:05 Graham Oxyron Parts
Kann aber gut sein, dass man für einen Zoomscroller eher doch noch anders ans Ziel kommt.. Wie gesagt ich glaube der X Zoom ist die wichtigste Komponente dabei. Was mit Y ist, weiß ich leider da auch nicht.. Simple Zoomscroller duplizieren da oft Zeilen z.B. mit Rastertricks..