@FB: In der Hoffnung dass Du's jetzt nicht wieder per
sönlich nimmst und wir mal bei der Sache bleiben können ...
Dein Code flippt nicht das Sprite, sondern macht momentan einfach nur eine Red<>Blue Invertierung jedes Pixels ... nix anderes.
(Wobei jedoch kein Zweifel daran besteht, dass es mit direktem Zugriff auf den DrawBuffer einiges flotter sein wird als mit Point/Plot).
@AND51:
AND51 hat geschrieben:Wenn mir jemand erklären kann, wie das mit dem DrawingBuffer() funktioniert, .....
Ich weiß, dass es der Buffer zu dem Sprite/Screen ist. Muss ich da einfach die RGB Farben rein und rauspoken? Desweiteren gibt mir der andere DrawingBuffer-Befehl ja die Länge einer zeile, aber woher weiß ich, wie viele zeilen das Ding hat? SpriteHeight()?
und das mit DrawingBufferPitch() verstehe ich noch nicht 100%ig...
Durch den DrawingBuffer() kommst Du an den Speicherbereich des Screens/Sprites heran.
DrawingBufferPitch() liefert Dir dir Länge einer Zeile in Bytes, wobei dies nicht unbedingt gleich zu setzen ist mit
Screen/Sprite-Breite * BytesProPixel, da sich die interne Breite des Buffers von der angezeigten Breite unterscheiden kann.
Für Berechnungen der genauen Speicheradresse solltest Du also immer DrawingBufferPitch() und nicht die Screen/Sprite-Breite heranziehen.
Die Höhe ist tatsächlich die angegebene Sprite/Screen-Höhe die Du angegeben hast bzw. ja über die einschlägigen Befehle abfragen kannst.
Der gesamte Speicherbereich berechnet sich also aus
DrawingBufferPitch * Screen/Sprite-Höhe.
Um nun z.B. die Offset-Adresse eines Pixels bei einem 32bit-Sprite zu berechnen brauchst Du im Grunde nur
x*4+y*DrawingBufferPitch() zu berechnen (x*4 deswegen, da 32bit Farbtiefe = 4Byte).
Schwieriger wird es natürlich dann, wenn Du verschiedene Bittiefen von Screen/Sprites berücksichtigen musst. Dass ist dann halt etwas mehr Aufwand.
Um nun z.B. dann solche Dinge wie einen Flip zu realisieren kannst Du auf die berechneten Speicherstellen dann einfach per Peek/Poke oder eben per Pointer zugreifen.
Bei solchen Spritemanipulationen per direktem Speicherzugriffen ist es meist hilfreich, wenn man Sprites mit dem Flag
#PB_Sprite_Memory erstellst, da der Speicherbereich des Sprites dann im schnellen Systemspeicher abgelegt wird und der Zugriff des Prozessors schneller erfolgen kann.
Dabei solltest Du jedoch auch bedenken, dass durch dieses Flag die spätere Darstellung auf dem Bildschirm wiederum langsamer von statten geht.
Hoffe ich habs einigermaßen verständlich hinbekommen. 
Gruß, PL.