Frage

Diese Frage bereits eine Antwort hier:

Ich brauche einen Weg zu finden, wenn das Zeichen ( ‚<‘) eine Wand (Schwarz-Pixel-Grafik) getroffen hat,

-Auf ein ZX81-Spiel.

Ich bin an einem anderen Spiel gesucht ..., die Code verwendet

Wenn peek (peek 16398 + 256 * peek 16399) = Code " blackpixel Grafik ", dann ...

Was für sie zu arbeiten scheint ...

Ist der richtige Code?

Ich bin nicht wirklich sachkundig mit Adressen und Speicher und Sachen zu bekommen.

Bitte helfen Sie mir ...

-Wenn Sie eine bessere Art und Weise kennen. Bitte antworte :) -Jemand genannte ‚Cursorposition‘, was zum Teufel, dass auf einem ZX81 ist? Danke,

War es hilfreich?

Lösung

PEEK(PEEK 16398+256*PEEK 16399) ist ein Idiom „erhalten die Zeichenzahl in der aktuellen Druckposition“ bedeutet. Dies funktioniert, da das Zwei-Byte-Wort bei 16398 vom ZX81 BASIC verwendet wird / ROM einen Zeiger auf die Speicherstelle in dem Datenblock-Bildschirm in die Druckposition zu speichern, entspricht.

So Kollisionserkennung zu tun, dann würden Sie zuerst gesetzt haben:

PRINT AT X,Y;

Koordinaten, wo die > ist, sich zu bewegen, und lesen

LET C= PEEK(PEEK 16398+256*PEEK 16399)

dann können Sie die > auf dem Bildschirm drucken (das vorherige Zeichen zu überschreiben, dessen Code ist jetzt in C), wenn Sie möchten, bevor die Prüfung tun:

IF C=128 THEN ...

(Ich vermute, das Zeichen, das Sie wollen, ist das All-schwarze Zeichen 128, ¦.)

Oh Mann, ich alt fühlen.

Andere Tipps

Wow tut dies gehen. Ich habe nicht einen ZX81 verwendet, aber ich habe einige Spiele auf einem TRS-80 Weg zurück in dem Tag schreiben.

Der innere Teil:

(peek 16398 + 256 * peek 16399)

ist ziemlich genau den Wert von zwei Speicherstellen unter (8 Bit) und die Schaffung eines 16-Bit-

Anzahl von ihnen, die dann als die Adresse des äußeren peek verwendet wird; Sie könnten umschreiben dies als:

addrToCheck = (peek 16398 + 256 * peek 16399)

pixelValue = peek (addrToCheck)

Wenn pixelValue = Code "blackpixel Grafik" dann ...

Ich vermute, dass der ‚addrToCheck‘ Wert ist eigentlich die Zeichenposition in dem Spiel, als eine Adresse auf dem Bildschirm zum Ausdruck gebracht. Also, wenn der Wert nicht eine Wand, dann würden Sie die Werte in der Adresse aktualisieren 16398 und 16399 mit einer neuen Zeichenposition (unter Verwendung eines ‚Poke‘, kein Zweifel).

Hope, das hilft

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top