Domanda

    

Questa domanda ha già una risposta qui:

    
            
  •              Aiuto: ZX81 BASIC “Peek” funzione                                      3 risposte                          
  •     
    

Ho bisogno di un modo per trovare se il carattere ( '<') ha colpito un muro (pixel nero Graphic)

-Su un gioco ZX81.

Sono stato a guardare un altro gioco ... che utilizza codice

se peek (peek 16398 + 256 * peek 16399) = codice " BlackPixel grafica ", quindi ...

che sembra funzionare per loro ...

E 'questo codice corretto?

Non sono veramente ben con gli indirizzi e ottenere la memoria e roba del genere.

Please help me ...

-Se si conosce un modo migliore. Risponda per favore :) -Qualcuno citato 'posizione del cursore' cosa diavolo è che su uno ZX81? Grazie,

È stato utile?

Soluzione

PEEK(PEEK 16398+256*PEEK 16399) è un idioma che significa “ottenere il numero carattere nella posizione di stampa corrente”. Questo funziona perché la parola di due byte 16398 viene utilizzato dal ZX81 BASIC / ROM per memorizzare un puntatore alla posizione di memoria nel blocco dati schermo corrispondente alla posizione di stampa.

Quindi, per fare il rilevamento delle collisioni, si sarebbe prima necessario impostare:

PRINT AT X,Y;

coordina a dove il > è in procinto di muoversi, poi lettura

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

Quindi è possibile stampare il > su schermo (sovrascrivendo il carattere precedente il cui codice è ora in C) se si desidera prima di fare il controllo:

IF C=128 THEN ...

(sto cercando di indovinare il carattere desiderato è il carattere tutto nero 128, ¦.)

Oh ragazzi, mi sento vecchio.

Altri suggerimenti

Wow fa questo di nuovo in movimento. Non ho usato uno ZX81, ma ho fatto scrivere i giochi di un modo per tornare TRS-80 nel corso della giornata.

La parte interna:

  

(peek 16398 + 256 * peek 16399)

è praticamente prendendo il valore di due posizioni di memoria (8 bit) e la creazione di un 16 bit

numero da loro, che viene quindi utilizzato come indirizzo del peek esterno; si potrebbe riscrivere questo come:

  

addrToCheck = (PEEK 16398 + 256 * peek 16399)

     

pixelValue = peek (addrToCheck)

     

se pixelValue = codice "grafico BlackPixel" allora ...

Sto indovinando che il valore 'addrToCheck' è in realtà la posizione del carattere nel gioco, espresso come un indirizzo sullo schermo. Quindi, se il valore non è un muro, allora si dovrebbe aggiornare i valori di indirizzo 16398 e 16399 con una posizione di nuovo personaggio (con un 'colpire', senza dubbio).

Spero che questo aiuti

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top