2010-07-07 19 views
5

necesito una manera de encontrar si el personaje ('<') ha chocado contra un muro (píxel Negro gráfico)Ayuda: ZX81 BASIC "Peek" función

-En un juego ZX81.

Estoy estado buscando en otro juego ... que utiliza código

if peek(peek 16398 +256*peek 16399) = code "**blackpixel graphic**" then ... 

que parece funcionar para ellos ...

Es este código correcto?

No soy realmente conocedor de direcciones y obtener memoria y esas cosas.

Por favor, ayúdame ...

-Si saben una mejor manera. Por favor, conteste :)

Gracias,

+5

Sin ayuda mía; Lave esa información de mi memoria hace unos 20 años. :-) –

+0

xD: P Sí, quiero saber los conceptos básicos de la computación premoderna :) -Límite fundamentos ... – ZX81

+1

"Quiero saber los conceptos básicos de la informática premoderna" Luego pruebe ZX-Spectrum. Mucho más divertido + una buena razón para aprender un poco sobre el ensamblaje Z80. podrías intentar crear otro perforador (http://en.wikipedia.org/wiki/Driller_ (video_game)), manejar con dureza (http://en.wikipedia.org/wiki/Hard_driving) u otro Elite (http://en.wikipedia.org/wiki/Elite_(video_game)) en el espectro. Con solo mostrar texto, estarás atrapado haciendo make-rogue-likes (http://en.wikipedia.org/wiki/Roguelike) en el mejor de los casos. – SigTerm

Respuesta

0

Depende de lo que es la dirección de memoria, pero por lo general significa mirar "qué valor se encuentra en esta posición de memoria?"

This parece que debería ser una buena lectura en este tema en particular.

1

peek lee el byte en una ubicación de memoria. De acuerdo con The System Variables of the Sinclair ZX81, la ubicación de memoria 16398 y 16399 forman un valor de 16 bits que contiene la actual "Dirección de la posición de IMPRESIÓN en el archivo de visualización".

Por lo tanto, peek 16398 + 256*peek 16399 combina los dos valores en una dirección de 16 bits y peek ing esa dirección (posiblemente) obtiene el píxel/carácter (?) En esa posición.

+0

Sí, he estado mirando eso. Sin embargo, no ayuda a un principiante.=/ – ZX81

1

Ubicado en las direcciones 16398 y 16399 hay dos bytes que forman la ubicación del cursor. (Ver http://web.ukonline.co.uk/sinclair.zx81/chap28.html). En otras palabras,

le da la dirección de la memoria del carácter en la pantalla donde iría la PRINT siguiente Que aparentemente se puede cambiar con PRINT AT.

peek(peek 16398 + 256*peek 16399) 

encuentra el código para cualquier carácter que se encuentre en esa ubicación. El resto deberías ser capaz de descubrirlo.

Ahora, la pregunta principal es: ¿su juego utiliza el cursor de la misma manera? Si no, debes usar una solución diferente.

+0

Hmmm ok, así que si imprimo un gráfico de píxeles negros en 10,10 (o en cualquier posición) 'peek (peek 16398 + 256 * peek 16399)' encontrará el código para un gráfico de píxeles negros? – ZX81

+0

No, encontrará el código para cualquier gráfico en la posición actual del cursor. – Artelius

+0

¿Posición del cursor? ¿Huh? : P ¿Nunca supe que ZX81 tenía mouses o cursores? – ZX81