CHECK

Aus C64-Wiki
Zur Navigation springenZur Suche springen
CHECK
Syntax: 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
Token: $64 $7c (100 124)
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>)

CHECK überprüft Sprite-Kollisionen, 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 (die Nummer des Sprites, das an der Kollision beteiligt sein soll) 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 (in TSB behoben). 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>).)

Anmerkung: Das Schlüsselwort CHECK verweist auf dieselbe Adresse wie DETECT. Daher ist es möglich, CHECK als Befehl zu benutzen mit derselben Syntax und Wirkung wie bei DETECT. Bitte in diesem Zusammenhang beachten: In TSB hat der Befehl CHECK eine andere Bedeutung.

Beispiele[Bearbeiten | Quelltext bearbeiten]

100 DETECT 0: k1 = CHECK(1,4)

Haben sich Sprites 1 und 4 berührt?

110 DETECT 0: k2 = CHECK(1,1)

Wurde Sprite 1 von irgendeinem anderen berührt?

120 DETECT 1: k3 = CHECK(2)

Hat Sprite 2 den Hintergrund berührt?