RIC-Elemente
Wie ist nun eine RIC-Datei intern aufgebaut? Eigentliche Grafikdateien beinhalten einen Header, der z.B. Auskunft über die Größe des Bitmaps oder die Farbpalette gibt, und einem eigentlichen binären Bereich, der die Informationen über die Pixels der Grafik enthält. Bei RIC-Dateien verhält es sich hier ein wenig anders! Natürlich gibt es auch einen Bereich zum Speichern einer monochromen Matrix - darüber hinaus jedoch sind noch viele andere Elemente vorhanden, die für die Ausgabe auf den NXT-Bildschirm verwendet werden können:
Jede RIC-Datei besteht aus einem oder mehren dieser RIC-Elemente, die beim Aufruf der RIC-Datei sequentiell abgearbeitet werden. Standard RIC-Dateien, die sowohl mit NXT-G mitgeliefert werden, bzw. mittels der alten Version von nxtRICedit erstellt wurden, enthalten immer nur drei dieser Elemente:
Für die Anzeige der einfachen RIC-Dateien werden keine zusätzlichen Parameter benötigt. Ein entsprechender Aufruf mittels NXC sieht dann wie folgt aus:
task main()
; |
Aber selbst dieser parameterlose Aufruf kann mehr als nur ein einzelnes Bild auf dem NXT-Bildschirm ausgeben, wenn man die in der RIC-Datei gespeicherten RIC-Elemente entsprechend auswählt und anordnet!
Der eigentliche Vorteil der RIC-Dateien kommt erst beim erweiterten Aufruf mittels GraphicOutEx( ) zum Einsatz, bei dem man zusätzlich noch ein Array mit Integerwerten mitgeben kann:
task main() int parameter[ 3 ];
parameter[ 0 ]= 10; parameter[ 1 ]= 2; parameter[ 2 ]= 40;
; |
Erst diese Form des Aufrufes stößt das bisher verschlossene Tor der zusätzlichen RIC-Funktionen auf!
Die Standard-Firmware unterstützt bis zu 16 Parameter (Array-Index 0 bis 15). Die von John Hansen korrigierte Version der Firmware kann dagegen bis zu 256 Parameter (Array-Index 0 bis 255) beim Aufruf von GraphicOutEx( ) mitgeben!
Viele werden sich nun fragen, wozu eigentlich diese Parameter eingesetzt werden können? Um diese Frage zu beantworten, muss man verstehen, wie die einzelnen RIC-Elemente aufgebaut sind, und wie sie funktionieren. Grundsätzlich kann man bei fast jedem RIC-Parameter drei Formen von Werten angeben:
Parametertyp | Anzeigebild | Bedeutung / Funktion | ||||||||||
Konstante |
|
Der Wert dieser Konstante wird zur Designzeit im RIC-Element festgelegt und kann nachträglich nicht mehr geändert werden. Der Wertebereich dieser Werte ist von 0 bis 4195 (0x0000 - 0x0FFF). |
||||||||||
Parameter |
|
Hier wird der Index angegeben, welcher zur Laufzeit den zu verwendenden Wert aus dem übergebenen Integer-Array adressiert. So kann dynamisch zur Laufzeit der zu verwendende Wert übergeben werden.
Der Wert für den Index ist abhängig von der im NXT eingesetzten Firmware:
Über File »
Settings »
Parameters kann die Anzahl der zu verwendenden Parameter
eingestellt werden. Alternativ direkt über die beiden Symbole
|
||||||||||
VarMap |
|
Bei dieser Parameterangabe handelt es sich um eine zweifach indirekten Adressierung. Der linke Wert gibt an, welches zuvor definierte VarMap-Element verwendet werden soll. Der rechte Parameter gibt dann den Index für den Parameter an, dessen Wert über die VarMap-Funktion umgesetzt wird.
Auch hier gilt das Gleiche wie für die Parameter-Adressierung: Es kann nur ein Parameter-Index verwendet werden, der auch von der Firmware unterstützt wird. |
Erstellen einer RIC-Datei
Für die Erstellung der RIC-Datei können die RIC-Elemente in beliebiger Reihenfolge wie Perlen auf eine Schnur gefädelt werden. In unserem Fall ist der Faden jedoch vertikal angeordnet und neue RIC-Elemente werden an das untere Ende angefügt (siehe rot umrandeten Bereich):
Das Anhängen ist denkbar einfach und wird durch das Drücken des gewünschten RIC-Element-Symbols im unteren linken Fensterbereich gemacht:
|
|
Hängt das RIC-Element Information an das Ende der Liste an |
|
|
Hängt das RIC-Element Point an das Ende der Liste an |
|
|
Hängt das RIC-Element Line an das Ende der Liste an |
|
|
Hängt das RIC-Element Rectangle an das Ende der Liste an |
|
|
Hängt das RIC-Element Circle an das Ende der Liste an |
|
|
Hängt das RIC-Element NumBox an das Ende der Liste an |
![]() |
Hängt das RIC-Element Sprite an das Ende der Liste an | |
|
|
Hängt das RIC-Element CopyBits an das Ende der Liste an |
|
|
Hängt das RIC-Element VarMap an das Ende der Liste an |
Selbstverständlich kann die Reihenfolge der Elemente in der RIC-Datei auch im nachhinein geändert werden:
Mit der Maus können die einzelnen RIC-Elemente direkt verschoben werden
Das aktuell gewählte Element kann mit DEL gelöscht werden
Mit folgenden Buttons:
|
|
Löscht das aktuell ausgewählte RIC-Element |
|
|
Erstellt eine Kopie des aktuell ausgewählten RIC-Elements und fügt es dahinter ein |
|
|
Verschiebt das aktuell ausgewählte RIC-Element eine Position nach vorne |
|
|
Verschiebt das aktuell ausgewählte RIC-Element eine Position nach hinten |