Ich versuche mit SpriteKits SKMutableTexture
Klasse, aber ich weiß nicht, wie ich mit UnsafeMutablePointer< Void >
arbeiten soll. Ich habe eine vage Idee, dass es ein Zeiger auf eine Folge von Byte-Daten im Speicher ist. Aber wie kann ich es aktualisieren? Wie sieht das eigentlich im Code aus?
Bearbeiten
Hier ist ein grundlegendes Codebeispiel zum Arbeiten. Wie würde ich etwas so einfach wie ein rotes Quadrat auf dem Bildschirm erstellen?
%Vor% Aus den Dokumenten für SKMutableTexture.modifyPixelDataWithBlock
:
Es wird angenommen, dass die Texturbytes als dicht gepackte 32bpp, 8bpc (unsigned integer) RGBA Pixeldaten gespeichert werden. Die von Ihnen bereitgestellten Farbkomponenten sollten bereits mit dem Alpha-Wert multipliziert worden sein.
Während also ein void*
angegeben wird, liegen die zugrunde liegenden Daten in Form eines Stroms von 4x8 Bits vor.
Sie könnten eine solche Struktur wie folgt manipulieren:
%Vor% UnsafeMutablePointer<Void>
ist das Swift-Äquivalent von void*
- ein Zeiger auf alles. Sie können auf den zugrunde liegenden Speicher als seine memory
-Eigenschaft zugreifen. Wenn Sie wissen, was der zugrunde liegende Typ ist, werden Sie normalerweise zuerst einen Zeiger auf diesen Typ erzwingen. Sie können dann Subskriptionen verwenden, um einen bestimmten "Slot" im Speicher zu erreichen.
Wenn die Daten beispielsweise eine Sequenz von UInt8-Werten sind, könnten Sie sagen:
%Vor% Sie können nun auf die einzelnen UInt8-Werte als buffer[0]
, buffer[1]
usw. zugreifen.
Tags und Links ios pointers swift sprite-kit