Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previaÚltima revisiónAmbos lados, revisión siguiente | ||
cursos:z88dk:sprites2 [10-08-2007 08:04] – sromero | cursos:z88dk:sprites2 [24-02-2020 19:19] – falvarez | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
+ | Publicado originalmente en [[https:// | ||
+ | |||
+ | ====== Curso de Z88DK: Sprites (II) ====== | ||
===== ¡Mis Sprites se mueven! ===== | ===== ¡Mis Sprites se mueven! ===== | ||
Línea 524: | Línea 527: | ||
Por último, una cosa curiosa: si mientras movemos el coche pasamos por encima de donde pone Bytes: movimiento (correspondiente a la carga desde cinta) veremos como el borrado y la escritura del sprite del coche no afecta en lo mas mínimo a los píxeles que forman parte de ese texto; esto es sin duda otra de las grandes ventajas de usar el modo de dibujado de sprites or exclusiva. | Por último, una cosa curiosa: si mientras movemos el coche pasamos por encima de donde pone Bytes: movimiento (correspondiente a la carga desde cinta) veremos como el borrado y la escritura del sprite del coche no afecta en lo mas mínimo a los píxeles que forman parte de ese texto; esto es sin duda otra de las grandes ventajas de usar el modo de dibujado de sprites or exclusiva. | ||
+ | |||
===== Y ahora, pongamos el coche en una pista ===== | ===== Y ahora, pongamos el coche en una pista ===== | ||
Línea 532: | Línea 536: | ||
Dentro de coches.h es donde definiremos el trazado de la pista. Si consideramos la pantalla como un array de 18x24 casillas de tamaño 10x10 (el mismo que los neumáticos), | Dentro de coches.h es donde definiremos el trazado de la pista. Si consideramos la pantalla como un array de 18x24 casillas de tamaño 10x10 (el mismo que los neumáticos), | ||
+ | <code c> | ||
#define ALTURA_CIRCUITO 18 | #define ALTURA_CIRCUITO 18 | ||
#define ANCHURA_CIRCUITO 24 | #define ANCHURA_CIRCUITO 24 | ||
+ | </ | ||
y al final del mismo archivo incluimos el siguiente array: | y al final del mismo archivo incluimos el siguiente array: | ||
+ | <code c> | ||
short circuito1[] = { 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | short circuito1[] = { 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | ||
0, 0, 0, 0, 0, 0, 0 }; | 0, 0, 0, 0, 0, 0, 0 }; | ||
Línea 578: | Línea 585: | ||
circuito12, circuito13, circuito14, circuito15, circuito16, circuito17, | circuito12, circuito13, circuito14, circuito15, circuito16, circuito17, | ||
circuito18}; | circuito18}; | ||
+ | </ | ||
- | Con un poco de imaginación podemos vislumbrar en ese array un circuito cerrado en forma de O. Si ahora creamos un fichero llamado juego.c, que contenga el mismo código que movimiento.c, | + | Con un poco de imaginación podemos vislumbrar en ese array un circuito cerrado en forma de O. Si ahora creamos un fichero llamado |
+ | < | ||
void main(void) | void main(void) | ||
{ | { | ||
Línea 586: | Línea 595: | ||
int y = 140; | int y = 140; | ||
int posicion = 0; | int posicion = 0; | ||
- | short int i; | + | short int i, j; // nuevo |
- | short int j; | + | |
char *puntero1 = (char *) 23561; | char *puntero1 = (char *) 23561; | ||
Línea 598: | Línea 606: | ||
int ciclos = CICLOS_BASE; | int ciclos = CICLOS_BASE; | ||
+ | // nuevo (Principio) | ||
for (i=0; | for (i=0; | ||
printf(" | printf(" | ||
- | for (i=0;i | + | for (i=0;i< |
- | + | for (j=0; | |
- | putsprite(spr_xor, | + | if (circuito[i][j] == 1) |
+ | | ||
+ | // nuevo (Fin) | ||
while(1) | while(1) | ||
Línea 610: | Línea 621: | ||
*puntero2 = 1; | *puntero2 = 1; | ||
asm(" | asm(" | ||
+ | </ | ||
+ | |||
- | Figura 4. Nuestro coche dispuesto a ser el rey de la pista | + | {{ cursos: |
- | Figura 4. Nuestro coche dispuesto a ser el rey de la pista | + | |
Hay que tener en cuenta que hemos cambiado el valor inicial de la coordenada y del coche para que éste quede dentro de la pista. También hemos creado dos variables, i y j que nos van a servir de contadores en un par de bucles. | Hay que tener en cuenta que hemos cambiado el valor inicial de la coordenada y del coche para que éste quede dentro de la pista. También hemos creado dos variables, i y j que nos van a servir de contadores en un par de bucles. | ||
Línea 949: | Línea 961: | ||
- | * [[http://www.speccy.org/ | + | * [[https://magazinezx.speccy.org/ |