CHECK

Aus C64-Wiki
Wechseln zu: Navigation, Suche
CHECK
Format: CHECK(<n>) bzw. CHECK(<n1>,<n2>)
Parameter
n: 0..7 (Nummer des Sprites)
n1: 0..7 (Nummer des 1. Sprites)
n2: 0..7 (Nummer des 2. Sprites)
Einordnung
Typ: boolsche Funktion
Kontext: Sprites
Aufgabe: Sprite kontrollieren
Abkürzung: keine
Verwandte Befehle
RLOCMOB - MMOB - DETECT - MOB OFF


Dieser Artikel beschreibt das Simons'-Basic-Schlüsselwort CHECK.

Typ: boolsche Funktion
Syntax: CHECK(<n>) bzw. CHECK(<n1>,<n2>)
        oder PRINT CHECK(<n>) bzw. PRINT CHECK(<n1>,<n2>)

CHECK überprüft Spritekollisionen, die mit DETECT vorbereitet wurden. Die Funktion liefert dabei entweder den Wert 1 (keine Kollision) oder 0 zurück (gesuchte Kollision hat sich ereignet). CHECK(<n>) (nur ein Argument) ist dabei für die Kollisionsabfrage Sprite-Hintergrund zuständig, CHECK mit zwei Argumenten für diejenige zwischen zwei Sprites.

Will man herausfinden, ob überhaupt eine Sprite-Sprite-Kollision stattgefunden hat (egal, mit welchem Sprite), schreibt man zweimal das gleiche Argument in die Klammer: k = CHECK(1,1).

Achtung: Die Nummern der Sprites werden nicht auf Plausibilität geprüft, so dass Werte bis 255 akzeptiert werden, die natürlich zu völlig falschen Ergebnissen führen. Außerdem ist die öffnende Klammer nicht Bestandteil des Arguments, sondern Teil des Befehlsworts und darf nicht mit einem Leerzeichen vom Befehl abgetrennt werden, sonst erhält man einen ?SYNTAX ERROR. Schließlich: Je nach Wahl des Parameters von DETECT liefert die Funktion CHECK einen ?SYNTAX ERROR, wenn die Anzahl Argumente nicht stimmt (DETECT 0 braucht CHECK(<n1>,<n2>), DETECT 1 dagegen CHECK(<n>).)

Hinweis: Die Funktion CHECK war unter TSB defekt und lieferte dort nur noch den Rückgabewert 0. Dieser Fehler ist inzwischen behoben (Ende Dezember 2006).


Beispiele: 

100 DETECT 0: k1 = CHECK(1,4)   ; prüft, ob sich Sprites 1 und 4 berührt haben
110 DETECT 0: k2 = CHECK(1,1)   ; prüft, ob Sprite 1 von irgendeinem anderen berührt wurde
120 DETECT 1: k3 = CHECK(2)     ; prüft, ob Sprite 2 den Hintergrund berührt hat