Paso 12: Detección de azulejo
Es hora de que la magia suceda. Detección de azulejo.
Detección de azulejo nos permite ' conocer ' Qué fuentes y azulejos se colocan a posiciones específicas. ¿Recuerda Mario Bros en la Nintendo? ¿Cómo sabe el juego cuando Mario está ejecutando en tierra firme, o caer en un hoyo?
Otra vez, tenemos una subrutina simple (en realidad una función) que nos ayudará a leer las fichas y saber lo que se ha colocado alrededor de nosotros. Esta es la rutina:
Function Tiledetect(xpos, ypos) I2C WRITE PC,0,4,1,255,xpos,ypos Pause 1 I2C WRITE PC,0,1,&h0 I2C READ PC,0,1,TileDetect End Function
Tiledetect puede utilizarse para devolver el valor de cualquier azulejo en cualquier posición X e Y.
Cómo sprites utilizan Tiledetect:
Ahora, tomar una profunda respiración de limpieza porque voy a mostrarte cómo hacer sprites de 16 x 16 interactuar con el mundo de azulejos 8 x 8.
Echa un vistazo a la imagen que he unido a esta página. Observe cómo mi sprite es realmente permanente azulejos sobre todo sobre dos diferentes ladrillos de 8 x 8. Posición real de mi sprite en la pantalla es X-30 y Y-240. Tenemos que convertir estas posiciones de pixel en ubicaciones de sprites de 8 x 8. Aquí es cómo lo hacemos en BASIC.
Int(player_x/8) y INT(player_y/8+1)
30 / 8 = 3.76 (INT acorta el número 3)
240 / 8 = 30
Dividiendo la posición del pixel X del sprite y Y coordina da nosotros "muy cerca" de 8 x 8 baldosas posiciones para nuestro sprite.
Muchas veces la división de un número creará un número fraccionario, por lo que el INT trunca un número al siguiente número entero menor o igual al argumento.
Vamos a prueba un poco y ver si entiende todavía...
¿Qué pasa si necesitamos saber ¿qué son los azulejos debajo de sprite? ¿Como el piso de ladrillo en Loadrunner?
Int(player_x/8) ' A partir de posición de sprite.
Int(player_y/8+2) ' A partir de sprite posición + 2 (2 * 8) abajo.
A veces es útil utilizar el textoparamostrar & DisplayChar de la última página para colocar esta información en la parte superior de la pantalla mientras estás creando tu juego. Le ayudaremos a tener una idea de lo que está sucediendo mientras está en movimiento alrededor de la pantalla tu sprite.