Preguntas sobre la Librería cpcrslib

Programando el Amstrad en BASIC, C, etc.
KaosOverride
Keeper of The Forum
Keeper of The Forum
Mensajes: 712
Registrado: Vie 27 Feb , 2009 12:21 pm

Re: Preguntas sobre la Librería cpcrslib

Mensajepor KaosOverride » Vie 09 Nov , 2012 11:42 am

Brujeria brujeria, he compilado el tuyo, todo OK, he compilado el mio, mal, sale el fallo de los tiles.

He ido comparando el tuyo y el mio y solo se diferenciaban en las coordenadas de inicio de sprite02 y sprite03... las rectifico en el mio y se mueven sin fallos.

Vuelvo a poner las coordenadas anteriores y no logro reconstruir el fallo.... :shock: Sigue bien....

Seguire insistiendo en a ver si recupero el fallo por si es algun bug de la libreria bajo SDCC, ya te comentare...

Veo que lo de los tiles te ha traido de cabeza a la hora de portar de z88dk a SDCC y ha tocado dejarlos dentro de la libreria. Viendo la idea de la lista de punteros a sprites p_sprites[]...

¿Crees que se podria hacer dentro de la libreria una similar, p_tiles[] de por ejemplo 10 unidades y que apunten al inicio de una misma tile "base" dentro del TileMap.H? Despues desde el programa metemos nuestras propias tiles y cambiamos/inicializamos los punteros en el p_tiles[]

¿Tal vez meter todo eso en medio pierda velocidad?

Bueno, igual ya lo has intentado asi....
--------
Carpeta publica [url=https://mega.nz/#F!W5IyhbLa!51JpgZqvyx6j__v12Pr9QA]MEGA Amstrad[/url]
Carpeta proyecto [url=https://github.com/KaosOverride]GitHub[/url]

KaosOverride
Keeper of The Forum
Keeper of The Forum
Mensajes: 712
Registrado: Vie 27 Feb , 2009 12:21 pm

Re: Preguntas sobre la Librería cpcrslib

Mensajepor KaosOverride » Vie 09 Nov , 2012 12:29 pm

Ole!!! Que chulo queda!

Compila esto en el SDCC
Imagen

Código: Seleccionar todo

#include "cpcrslib.h"

extern const unsigned char maz_1[]; //masked sprite data
extern const unsigned char maz_2[]; //masked sprite data
extern const unsigned char sp_1[]; //masked sprite data
//extern const unsigned char sp_2[]; //masked sprite data
extern const unsigned char tintas[]; //inks
extern unsigned char buffer[]; //inks


struct sprite // minimun sprite structure
{
char *sp0; //2 bytes 01
char *sp1; //2 bytes 23
int coord0; //2 bytes 45 current superbuffer address
int coord1; //2 bytes 67 old superbuffer address
unsigned char cx, cy; //2 bytes 89 current coordinates
unsigned char ox, oy; //2 bytes 1011 old coordinates
unsigned char move1; // los bits 4,3,2 definen el tipo de dibujo!!
unsigned char move; // in this example, to know the movement direction of the sprite


};
struct sprite sprite00,sprite01,sprite02,sprite03,sprite04;

void data(void)
{

__asm
_buffer:
.db #60
_maz_1:
.db 8,40
.db #0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0x00,#0xCC,#0x55,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0x00,#0xCC,#0x00,#0xE4,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0x00,#0x3C,#0x00,#0x9C,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xAA,#0x44,#0x00,#0x88,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xAA,#0x00,#0x00,#0xCC,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xAA,#0x10,#0x00,#0xE4,#0x55,#0x00,#0xAA,#0x10,#0x55,#0x20,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xAA,#0x00,#0x00,#0xF0,#0x00,#0x00,#0x00,#0x10,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0x00,#0x00,#0x70,#0x00,#0x00,#0x00,#0x50,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0x00,#0x00,#0x50,#0x00,#0xA0,#0x00,#0xF0,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xAA,#0x00,#0x00,#0x00,#0x00,#0x50,#0x00,#0xA0,#0x00,#0xA0,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xAA,#0x04,#0x00,#0x88,#0x00,#0x00,#0x00,#0x00,#0x00,#0x00,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0x00,#0x0C,#0x55,#0x88,#0x00,#0x00,#0x00,#0x00,#0x00,#0x04,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0x00,#0x84,#0x55,#0x88,#0x00,#0x44,#0x00,#0x08,#0x00,#0x44,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0x00,#0xC0,#0xFF,#0x00,#0x00,#0xCC,#0x00,#0x0C,#0x00,#0x40,#0x55,#0x80,#0xFF,#0x00
.db #0xFF,#0x00,#0x00,#0xC0,#0xFF,#0x00,#0x00,#0x8C,#0x00,#0x0C,#0x00,#0x48,#0x00,#0xC0,#0xFF,#0x00
.db #0xFF,#0x00,#0x00,#0xC0,#0x55,#0x80,#0x00,#0x00,#0x00,#0x00,#0x00,#0x40,#0x00,#0xC0,#0xFF,#0x00
.db #0xFF,#0x00,#0x00,#0xC0,#0x55,#0x80,#0x00,#0x00,#0x00,#0x00,#0x55,#0x00,#0x00,#0xC0,#0xFF,#0x00
.db #0xFF,#0x00,#0xAA,#0x40,#0x55,#0x80,#0x00,#0x00,#0x00,#0x00,#0x55,#0x00,#0x00,#0xC4,#0x55,#0x80
.db #0xFF,#0x00,#0xAA,#0x40,#0x55,#0x80,#0x00,#0x8C,#0x00,#0x00,#0x55,#0x00,#0xAA,#0x40,#0x55,#0x80
.db #0xFF,#0x00,#0xAA,#0x40,#0x55,#0x80,#0x00,#0x8C,#0x00,#0x00,#0x55,#0x88,#0xAA,#0x40,#0x55,#0x80
.db #0xFF,#0x00,#0xAA,#0x40,#0x00,#0xC4,#0x00,#0x0C,#0x00,#0x04,#0x55,#0x08,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xAA,#0x44,#0x00,#0x0C,#0x00,#0x8C,#0x55,#0x08,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xAA,#0x44,#0x00,#0x4C,#0xAA,#0x44,#0x55,#0x08,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xAA,#0x44,#0x55,#0x88,#0xAA,#0x44,#0x00,#0x48,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xAA,#0x40,#0x55,#0x80,#0xAA,#0x40,#0x00,#0xC0,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xAA,#0x40,#0x55,#0x80,#0xAA,#0x40,#0x00,#0xC0,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xAA,#0x40,#0x55,#0x80,#0xAA,#0x40,#0x00,#0xC0,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0xC0,#0x55,#0x80,#0xAA,#0x40,#0x00,#0xC0,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0xC0,#0x55,#0x80,#0xAA,#0x40,#0x00,#0xC0,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0xC0,#0x55,#0x80,#0x00,#0xC0,#0x00,#0xC0,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0xC0,#0x55,#0x80,#0x00,#0xC0,#0x00,#0xC0,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0xC0,#0x55,#0x80,#0x00,#0xC0,#0x00,#0xC0,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0xC0,#0x55,#0x80,#0x00,#0xC0,#0x00,#0xC0,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xAA,#0x40,#0x00,#0xC0,#0x55,#0x80,#0x00,#0xC0,#0x00,#0xC0,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xAA,#0x40,#0x00,#0xC0,#0x55,#0x80,#0x00,#0xC0,#0x00,#0xC4,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xAA,#0x40,#0x00,#0xC0,#0xFF,#0x00,#0x00,#0xC0,#0x00,#0xC0,#0x55,#0x80,#0xFF,#0x00
.db #0xFF,#0x00,#0xAA,#0x40,#0x00,#0xC0,#0xFF,#0x00,#0x00,#0xC0,#0x00,#0xC0,#0x00,#0xC0,#0xFF,#0x00
.db #0xFF,#0x00,#0xAA,#0x40,#0x00,#0xC0,#0xFF,#0x00,#0x00,#0xC0,#0x00,#0xC0,#0x00,#0xC0,#0xFF,#0x00
.db #0xFF,#0x00,#0xAA,#0x40,#0x00,#0xC0,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00
_maz_2:
.db 8,40
.db #0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xAA,#0x00,#0x00,#0xCC,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0x00,#0xD8,#0x00,#0xCC,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0x00,#0x6C,#0x00,#0x3C,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0x00,#0x44,#0x55,#0x88,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0x00,#0xCC,#0x55,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xAA,#0x10,#0x55,#0x20,#0xAA,#0x00,#0x00,#0xD8,#0x55,#0x20,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0x20,#0x00,#0x00,#0x00,#0xF0,#0x55,#0x00,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0xA0,#0x00,#0x00,#0x00,#0xB0,#0x00,#0x00,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0xF0,#0x00,#0x50,#0x00,#0xA0,#0x00,#0x00,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0x50,#0x00,#0x50,#0x00,#0xA0,#0x00,#0x00,#0x55,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0x00,#0x00,#0x00,#0x00,#0x00,#0x00,#0x44,#0x55,#0x08,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0x08,#0x00,#0x00,#0x00,#0x00,#0xAA,#0x44,#0x00,#0x0C,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0x88,#0x00,#0x04,#0x00,#0x88,#0xAA,#0x44,#0x00,#0x48,#0xFF,#0x00
.db #0xFF,#0x00,#0xAA,#0x40,#0x00,#0x80,#0x00,#0x0C,#0x00,#0xCC,#0xFF,#0x00,#0x00,#0xC0,#0xFF,#0x00
.db #0xFF,#0x00,#0x00,#0xC0,#0x00,#0x84,#0x00,#0x0C,#0x00,#0x4C,#0xFF,#0x00,#0x00,#0xC0,#0xFF,#0x00
.db #0xFF,#0x00,#0x00,#0xC0,#0x00,#0x80,#0x00,#0x00,#0x00,#0x00,#0xAA,#0x40,#0x00,#0xC0,#0xFF,#0x00
.db #0xFF,#0x00,#0x00,#0xC0,#0xAA,#0x00,#0x00,#0x00,#0x00,#0x00,#0xAA,#0x40,#0x00,#0xC0,#0xFF,#0x00
.db #0xAA,#0x40,#0x00,#0xC8,#0xAA,#0x00,#0x00,#0x00,#0x00,#0x00,#0xAA,#0x40,#0x55,#0x80,#0xFF,#0x00
.db #0xAA,#0x40,#0x55,#0x80,#0xAA,#0x00,#0x00,#0x00,#0x00,#0x4C,#0xAA,#0x40,#0x55,#0x80,#0xFF,#0x00
.db #0xAA,#0x40,#0x55,#0x80,#0xAA,#0x44,#0x00,#0x00,#0x00,#0x4C,#0xAA,#0x40,#0x55,#0x80,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xAA,#0x04,#0x00,#0x08,#0x00,#0x0C,#0x00,#0xC8,#0x55,#0x80,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xAA,#0x04,#0x00,#0x4C,#0x00,#0x0C,#0x55,#0x88,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xAA,#0x04,#0x55,#0x88,#0x00,#0x8C,#0x55,#0x88,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0x84,#0x55,#0x88,#0xAA,#0x44,#0x55,#0x88,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0xC0,#0x55,#0x80,#0xAA,#0x40,#0x55,#0x80,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0xC0,#0x55,#0x80,#0xAA,#0x40,#0x55,#0x80,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0xC0,#0x55,#0x80,#0xAA,#0x40,#0x55,#0x80,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0xC0,#0x55,#0x80,#0xAA,#0x40,#0x00,#0xC0,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0xC0,#0x55,#0x80,#0xAA,#0x40,#0x00,#0xC0,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0xC0,#0x00,#0xC0,#0xAA,#0x40,#0x00,#0xC0,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0xC0,#0x00,#0xC0,#0xAA,#0x40,#0x00,#0xC0,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0xC0,#0x00,#0xC0,#0xAA,#0x40,#0x00,#0xC0,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0xC0,#0x00,#0xC0,#0xAA,#0x40,#0x00,#0xC0,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0xC0,#0x00,#0xC0,#0xAA,#0x40,#0x00,#0xC0,#0x55,#0x80,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0xC8,#0x00,#0xC0,#0xAA,#0x40,#0x00,#0xC0,#0x55,#0x80,#0xFF,#0x00
.db #0xFF,#0x00,#0xAA,#0x40,#0x00,#0xC0,#0x00,#0xC0,#0xFF,#0x00,#0x00,#0xC0,#0x55,#0x80,#0xFF,#0x00
.db #0xFF,#0x00,#0x00,#0xC0,#0x00,#0xC0,#0x00,#0xC0,#0xFF,#0x00,#0x00,#0xC0,#0x55,#0x80,#0xFF,#0x00
.db #0xFF,#0x00,#0x00,#0xC0,#0x00,#0xC0,#0x00,#0xC0,#0xFF,#0x00,#0x00,#0xC0,#0x55,#0x80,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0x00,#0xC0,#0x55,#0x80,#0xFF,#0x00



_sp_1:
.db #4,#22
.db #0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0x00,#0xCC,#0x00,#0xCC,#0xFF,#0x00
.db #0xFF,#0x00,#0xAA,#0x44,#0x55,#0x88,#0xFF,#0x00
.db #0xFF,#0x00,#0xAA,#0x44,#0x55,#0x88,#0xFF,#0x00
.db #0xFF,#0x00,#0xAA,#0x44,#0x55,#0x88,#0xFF,#0x00
.db #0xFF,#0x00,#0x00,#0xCF,#0x00,#0xCF,#0xFF,#0x00
.db #0xAA,#0x45,#0x00,#0xCF,#0x00,#0xCF,#0x55,#0x8A
.db #0xAA,#0x45,#0x00,#0xE5,#0x00,#0xDA,#0x55,#0x8A
.db #0xAA,#0x45,#0x00,#0xCF,#0x00,#0xCF,#0x55,#0x8A
.db #0xAA,#0x45,#0x00,#0xCF,#0x00,#0xCF,#0x55,#0x8A
.db #0xAA,#0x45,#0x00,#0xCF,#0x00,#0xCF,#0x55,#0x8A
.db #0xAA,#0x45,#0x00,#0xCF,#0x00,#0xCF,#0x55,#0x8A
.db #0xFF,#0x00,#0x00,#0xCF,#0x00,#0xCF,#0xFF,#0x00
.db #0xAA,#0x01,#0x00,#0x03,#0x00,#0x03,#0x55,#0x02
.db #0x00,#0xA9,#0x00,#0x03,#0x00,#0x03,#0x00,#0x56
.db #0x00,#0xA9,#0x00,#0x03,#0x00,#0x03,#0x00,#0x56
.db #0xAA,#0x01,#0x00,#0x03,#0x00,#0x03,#0x55,#0x02
.db #0xAA,#0x01,#0x00,#0x03,#0x00,#0x03,#0x55,#0x02
.db #0xAA,#0x01,#0x00,#0x06,#0x00,#0x09,#0x55,#0x02
.db #0xFF,#0x00,#0x00,#0x0C,#0x00,#0x0C,#0xFF,#0x00
.db #0xFF,#0x00,#0x00,#0x0C,#0x00,#0x0C,#0xFF,#0x00
.db #0xFF,#0x00,#0x00,#0x0C,#0x00,#0x0C,#0xFF,#0x00

// There is a tool called Sprot that allows to generate masked sprites for z88dk.
// ask for it: www.amstrad.es/forum/


_tintas: //firmware inks
.db #0,#1,#26,#13,#3,#6,#24,#15,#17,#18,#2,#16,#18,#19,#25,#11
__endasm;
}



void *p_sprites[7];


void initPointers()
{

p_sprites[0] = &sprite00;
p_sprites[1] = &sprite01;
p_sprites[2] = &sprite02;
p_sprites[3] = &sprite03;
p_sprites[4] = &sprite04;

}

void set_colours(void)
{
unsigned char x;
for (x=0; x<16; x++)
{
cpc_SetInk(x,tintas[x]);
}
cpc_SetBorder(0);
}
void pause(void)
{
__asm
ld b,#40
pause_loop:
halt
djnz pause_loop
__endasm;
}
void collide(void)
{
cpc_SetColour(16,1);
pause();
cpc_SetColour(16,9);
}

void draw_tilemap(void)
{
unsigned char x,y;
//set the tiles of the map. In this example, the tile map is 32x16 tile
//Tile Map configuration file: TileMapConf.asm

y=0;
for(x=0; x<32; x++)
{
cpc_SetTile(x,y,2);
}
for(y=1; y<15; y++)
{
for (x=0; x<32; x++)
{
cpc_SetTile(x,y,0);
}
}
y=15;
for (x=0; x<32; x++)
{
cpc_SetTile(x,y,1);
}
}

void print_credits(void)
{
cpc_PrintGphStrXY("SMALL;SPRITE;DEMO",9*2+3,20*8);
cpc_PrintGphStrXY("SDCC;;;CPCRSLIB",10*2+3,21*8);
cpc_PrintGphStrXY("BY;ARTABURU;2012",10*2+3-1,22*8);
cpc_PrintGphStrXY("ESPSOFT<AMSTRAD<ES",10*2+3-3,24*8);
}

main()
{
unsigned char a;

initPointers();


set_colours();
cpc_SetInkGphStr(0,0);
cpc_SetModo(0);

cpc_DisableFirmware();
// All the sprite values are initilized
sprite00.sp1=maz_1;
sprite00.sp0=maz_1;
sprite00.ox=40;
sprite00.oy=60;
sprite00.cx=40;
sprite00.cy=60;
sprite00.move1=3;
cpc_SuperbufferAddress(p_sprites[0]); //first time it's important to do this

sprite01.sp1=sp_1;
sprite01.sp0=sp_1;
sprite01.ox=50;
sprite01.oy=106;
sprite01.cx=50;
sprite01.cy=106;
sprite01.move=1;
sprite01.move1=3;
cpc_SuperbufferAddress(p_sprites[1]);

sprite02.sp1=sp_1;
sprite02.sp0=sp_1;
sprite02.ox=20;
sprite02.oy=100;
sprite02.cx=20;
sprite02.cy=100;
sprite02.move=2;
sprite02.move1=3;
cpc_SuperbufferAddress(p_sprites[2]);

sprite03.sp1=sp_1;
sprite03.sp0=sp_1;
sprite03.ox=10;
sprite03.oy=10;
sprite03.cx=10;
sprite03.cy=10;
sprite03.move=2;
sprite03.move1=3;
cpc_SuperbufferAddress(p_sprites[3]);

sprite04.sp1=sp_1;
sprite04.sp0=sp_1;
sprite04.ox=50;
sprite04.oy=40;
sprite04.cx=50;
sprite04.cy=40;
sprite04.move=2;
sprite04.move1=3;
cpc_SuperbufferAddress(p_sprites[4]);

//Drawing the tile map
draw_tilemap();
cpc_ShowTileMap(); //Show entire tile map in the screen
print_credits();
cpc_SetTile(0,1,2);
/*cpc_GetTiles(0,0,2,3, buffer);

cpc_PutTiles(0,13,2,3, buffer);
cpc_GetTiles(0,13,2,3, buffer);
cpc_PutTiles(8,9,2,3, buffer); */

cpc_ShowTileMap(); //Show entire tile map in the screen
while(1)
{

//Default number keys for moving one of the sprites:
// 0: cursor right
// 1: cursor left
// 2: cursor up
// 3: cursor down

//for example., if key 0 is pressed, and the sprite is inside tilemap, then
//the sprite is moved one byte to the right:
if (cpc_TestKey(0)==1 && sprite00.cx<60)
{sprite00.cx++;
sprite00.sp1=sprite00.sp0;
sprite00.sp0=maz_1;
}
if (cpc_TestKey(1)==1 && sprite00.cx>0)
{sprite00.cx--;
sprite00.sp1=sprite00.sp0;
sprite00.sp0=maz_2;
}
if (cpc_TestKey(2)==1 && sprite00.cy>0) sprite00.cy-=2;
if (cpc_TestKey(3)==1 && sprite00.cy<112) sprite00.cy+=2;


// The other sprites are automatically moved
if (sprite01.move==0) //0 = left, 1 = right
{
if (sprite01.cx>0) sprite01.cx--;
else sprite01.move=1;
}
if (sprite01.move==1) //0 = left, 1 = right
{
if (sprite01.cx<60) sprite01.cx++;
else sprite01.move=0;
}

if (sprite02.move==2) //2 = up, 3 = down
{
if (sprite02.cy>0) sprite02.cy-=2;
else sprite02.move=3;
}
if (sprite02.move==3) //2 = up, 3 = down
{
if (sprite02.cy<106) sprite02.cy+=2;
else sprite02.move=2;
}


if (sprite03.move==2) //2 = up, 3 = down
{
if (sprite03.cy>0) sprite03.cy-=2;
else sprite03.move=3;
}
if (sprite03.move==3) //2 = up, 3 = down
{
if (sprite03.cy<106) sprite03.cy+=2;
else sprite03.move=2;
}

if (sprite04.move==2) //2 = up, 3 = down
{
if (sprite04.cy>0) sprite04.cy-=2;
else sprite04.move=3;
}
if (sprite04.move==3) //2 = up, 3 = down
{
if (sprite04.cy<106) sprite04.cy+=2;
else sprite04.move=2;
}


cpc_ResetTouchedTiles(); //clear touched tile table



//Sprite phase 1
cpc_PutSpTileMap(p_sprites[0]); //search the tiles where is and was the sprite
cpc_PutSpTileMap(p_sprites[1]);
cpc_PutSpTileMap(p_sprites[2]);
cpc_PutSpTileMap(p_sprites[3]);
cpc_PutSpTileMap(p_sprites[4]);


cpc_UpdScr(); //Update the screen to new situatio (show the touched tiles)

//Sprite phase 2
cpc_PutMaskSpTileMap2b(p_sprites[0]); //Requires to move sprite with cpc_SpUpdX or cpc_SpUpdY
cpc_PutMaskSpTileMap2b(p_sprites[1]);
cpc_PutMaskSpTileMap2b(p_sprites[2]);
cpc_PutMaskSpTileMap2b(p_sprites[3]);
cpc_PutMaskSpTileMap2b(p_sprites[4]);

cpc_ShowTileMap2(); //Show the touched tiles-> show the new sprite situatuion



if (cpc_CollSp(p_sprites[0],p_sprites[1])) collide(); //test if there is collision between sprite00 and sprite01
if (cpc_CollSp(p_sprites[0],p_sprites[2])) collide();
if (cpc_CollSp(p_sprites[0],p_sprites[3])) collide();
if (cpc_CollSp(p_sprites[0],p_sprites[4])) collide();

}
}
Última edición por KaosOverride el Vie 09 Nov , 2012 12:29 pm, editado 1 vez en total.
--------
Carpeta publica [url=https://mega.nz/#F!W5IyhbLa!51JpgZqvyx6j__v12Pr9QA]MEGA Amstrad[/url]
Carpeta proyecto [url=https://github.com/KaosOverride]GitHub[/url]

Avatar de Usuario
Artaburu
Trasteador
Trasteador
Mensajes: 8419
Registrado: Vie 07 Oct , 2005 6:18 pm
Ubicación: En tu pantalla

Re: Preguntas sobre la Librería cpcrslib

Mensajepor Artaburu » Vie 09 Nov , 2012 12:29 pm

Se puede, sí, no hay mucho problema pero habría que jugar con más apuntadores y perdería algo de velocidad además de tener que hacer alguna función más para inicializar los datos. Igual que hice con la librería cpcwyzlib que ahí sí que uso más punteros porque no se nota demasiado.

PD: Voy a ver eso que dices :D
Salu2,
Arta

Avatar de Usuario
Artaburu
Trasteador
Trasteador
Mensajes: 8419
Registrado: Vie 07 Oct , 2005 6:18 pm
Ubicación: En tu pantalla

Re: Preguntas sobre la Librería cpcrslib

Mensajepor Artaburu » Vie 09 Nov , 2012 12:45 pm

Queda bien, sí señor. ¿Es Mazinger Z?
Salu2,
Arta

KaosOverride
Keeper of The Forum
Keeper of The Forum
Mensajes: 712
Registrado: Vie 27 Feb , 2009 12:21 pm

Re: Preguntas sobre la Librería cpcrslib

Mensajepor KaosOverride » Vie 09 Nov , 2012 10:31 pm

Pues si, lo es xDD

Segun me vaya viniendo la inspiracion no se si hare un remake del juego aquel mio en basic, o algo nuevo... ya vere ;)

EDIT:

He implementado una chapucilla para retocar tiles:
1-He metido el apuntador a las tiles de la libreria
2-He metido las tiles propias en otro apuntador como los sprites
3-He implementado el memcpy xDDDDD
4-Hago memcpy de los tiles propios a los de la libreria

si en la libreria copio y pego mas tiles, si aumento el indice de los tiles no cascara, no?

Esta bien si sabes que en las pantallas no usas mas de X tiles, e ir copiando las que te interese del banco de la aplicacion al "engine" de dentro de la libreria xDD

Código: Seleccionar todo

#include "cpcrslib.h"

extern const unsigned char tiles[]; //Pointer to tiles in the library
extern const unsigned char tiles_propios[]; //Pointer to self tiles
extern const unsigned char maz_1[]; //masked sprite data
extern const unsigned char maz_2[]; //masked sprite data
extern const unsigned char dbl_1[]; //masked sprite data
extern const unsigned char dbl_2[]; //masked sprite data
extern const unsigned char tintas[]; //inks
extern unsigned char buffer[]; //inks


struct sprite // minimun sprite structure
{
char *sp0; //2 bytes 01
char *sp1; //2 bytes 23
int coord0; //2 bytes 45 current superbuffer address
int coord1; //2 bytes 67 old superbuffer address
unsigned char cx, cy; //2 bytes 89 current coordinates
unsigned char ox, oy; //2 bytes 1011 old coordinates
unsigned char move1; // los bits 4,3,2 definen el tipo de dibujo!!
unsigned char move; // in this example, to know the movement direction of the sprite


};
struct sprite sprite00,sprite01;//,sprite02,sprite03,sprite04;

void data(void)
{

__asm

_tiles_propios: ;Son de 2x8 bytes
;tile 0 //negro - cielo
.db #0x00,#0x00
.db #0x00,#0x00
.db #0x00,#0x00
.db #0x00,#0x00
.db #0x00,#0x00
.db #0x00,#0x00
.db #0x00,#0x00
.db #0x00,#0x00
;tile 1 //suelo
.db #0x3C,#0x01
.db #0x3C,#0x01
.db #0x01,#0x3C
.db #0x01,#0x3C
.db #0x3C,#0x01
.db #0x3C,#0x01
.db #0x01,#0x3C
.db #0x01,#0x3C
;tile 2 //edificio
.db #0xCC,#0xCC
.db #0x8C,#0x8C
.db #0xCC,#0xCC
.db #0x8C,#0x8C
.db #0xCC,#0xCC
.db #0x8C,#0x8C
.db #0xCC,#0xCC
.db #0x8C,#0x8C

_maz_1:
.db 8,40
.db #0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0x00,#0xCC,#0x55,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0x00,#0xCC,#0x00,#0xE4,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0x00,#0x3C,#0x00,#0x9C,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xAA,#0x44,#0x00,#0x88,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xAA,#0x00,#0x00,#0xCC,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xAA,#0x10,#0x00,#0xE4,#0x55,#0x00,#0xAA,#0x10,#0x55,#0x20,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xAA,#0x00,#0x00,#0xF0,#0x00,#0x00,#0x00,#0x10,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0x00,#0x00,#0x70,#0x00,#0x00,#0x00,#0x50,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0x00,#0x00,#0x50,#0x00,#0xA0,#0x00,#0xF0,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xAA,#0x00,#0x00,#0x00,#0x00,#0x50,#0x00,#0xA0,#0x00,#0xA0,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xAA,#0x04,#0x00,#0x88,#0x00,#0x00,#0x00,#0x00,#0x00,#0x00,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0x00,#0x0C,#0x55,#0x88,#0x00,#0x00,#0x00,#0x00,#0x00,#0x04,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0x00,#0x84,#0x55,#0x88,#0x00,#0x44,#0x00,#0x08,#0x00,#0x44,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0x00,#0xC0,#0xFF,#0x00,#0x00,#0xCC,#0x00,#0x0C,#0x00,#0x40,#0x55,#0x80,#0xFF,#0x00
.db #0xFF,#0x00,#0x00,#0xC0,#0xFF,#0x00,#0x00,#0x8C,#0x00,#0x0C,#0x00,#0x48,#0x00,#0xC0,#0xFF,#0x00
.db #0xFF,#0x00,#0x00,#0xC0,#0x55,#0x80,#0x00,#0x00,#0x00,#0x00,#0x00,#0x40,#0x00,#0xC0,#0xFF,#0x00
.db #0xFF,#0x00,#0x00,#0xC0,#0x55,#0x80,#0x00,#0x00,#0x00,#0x00,#0x55,#0x00,#0x00,#0xC0,#0xFF,#0x00
.db #0xFF,#0x00,#0xAA,#0x40,#0x55,#0x80,#0x00,#0x00,#0x00,#0x00,#0x55,#0x00,#0x00,#0xC4,#0x55,#0x80
.db #0xFF,#0x00,#0xAA,#0x40,#0x55,#0x80,#0x00,#0x8C,#0x00,#0x00,#0x55,#0x00,#0xAA,#0x40,#0x55,#0x80
.db #0xFF,#0x00,#0xAA,#0x40,#0x55,#0x80,#0x00,#0x8C,#0x00,#0x00,#0x55,#0x88,#0xAA,#0x40,#0x55,#0x80
.db #0xFF,#0x00,#0xAA,#0x40,#0x00,#0xC4,#0x00,#0x0C,#0x00,#0x04,#0x55,#0x08,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xAA,#0x44,#0x00,#0x0C,#0x00,#0x8C,#0x55,#0x08,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xAA,#0x44,#0x00,#0x4C,#0xAA,#0x44,#0x55,#0x08,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xAA,#0x44,#0x55,#0x88,#0xAA,#0x44,#0x00,#0x48,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xAA,#0x40,#0x55,#0x80,#0xAA,#0x40,#0x00,#0xC0,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xAA,#0x40,#0x55,#0x80,#0xAA,#0x40,#0x00,#0xC0,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xAA,#0x40,#0x55,#0x80,#0xAA,#0x40,#0x00,#0xC0,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0xC0,#0x55,#0x80,#0xAA,#0x40,#0x00,#0xC0,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0xC0,#0x55,#0x80,#0xAA,#0x40,#0x00,#0xC0,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0xC0,#0x55,#0x80,#0x00,#0xC0,#0x00,#0xC0,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0xC0,#0x55,#0x80,#0x00,#0xC0,#0x00,#0xC0,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0xC0,#0x55,#0x80,#0x00,#0xC0,#0x00,#0xC0,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0xC0,#0x55,#0x80,#0x00,#0xC0,#0x00,#0xC0,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xAA,#0x40,#0x00,#0xC0,#0x55,#0x80,#0x00,#0xC0,#0x00,#0xC0,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xAA,#0x40,#0x00,#0xC0,#0x55,#0x80,#0x00,#0xC0,#0x00,#0xC4,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xAA,#0x40,#0x00,#0xC0,#0xFF,#0x00,#0x00,#0xC0,#0x00,#0xC0,#0x55,#0x80,#0xFF,#0x00
.db #0xFF,#0x00,#0xAA,#0x40,#0x00,#0xC0,#0xFF,#0x00,#0x00,#0xC0,#0x00,#0xC0,#0x00,#0xC0,#0xFF,#0x00
.db #0xFF,#0x00,#0xAA,#0x40,#0x00,#0xC0,#0xFF,#0x00,#0x00,#0xC0,#0x00,#0xC0,#0x00,#0xC0,#0xFF,#0x00
.db #0xFF,#0x00,#0xAA,#0x40,#0x00,#0xC0,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00
_maz_2:
.db 8,40
.db #0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xAA,#0x00,#0x00,#0xCC,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0x00,#0xD8,#0x00,#0xCC,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0x00,#0x6C,#0x00,#0x3C,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0x00,#0x44,#0x55,#0x88,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0x00,#0xCC,#0x55,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xAA,#0x10,#0x55,#0x20,#0xAA,#0x00,#0x00,#0xD8,#0x55,#0x20,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0x20,#0x00,#0x00,#0x00,#0xF0,#0x55,#0x00,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0xA0,#0x00,#0x00,#0x00,#0xB0,#0x00,#0x00,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0xF0,#0x00,#0x50,#0x00,#0xA0,#0x00,#0x00,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0x50,#0x00,#0x50,#0x00,#0xA0,#0x00,#0x00,#0x55,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0x00,#0x00,#0x00,#0x00,#0x00,#0x00,#0x44,#0x55,#0x08,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0x08,#0x00,#0x00,#0x00,#0x00,#0xAA,#0x44,#0x00,#0x0C,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0x88,#0x00,#0x04,#0x00,#0x88,#0xAA,#0x44,#0x00,#0x48,#0xFF,#0x00
.db #0xFF,#0x00,#0xAA,#0x40,#0x00,#0x80,#0x00,#0x0C,#0x00,#0xCC,#0xFF,#0x00,#0x00,#0xC0,#0xFF,#0x00
.db #0xFF,#0x00,#0x00,#0xC0,#0x00,#0x84,#0x00,#0x0C,#0x00,#0x4C,#0xFF,#0x00,#0x00,#0xC0,#0xFF,#0x00
.db #0xFF,#0x00,#0x00,#0xC0,#0x00,#0x80,#0x00,#0x00,#0x00,#0x00,#0xAA,#0x40,#0x00,#0xC0,#0xFF,#0x00
.db #0xFF,#0x00,#0x00,#0xC0,#0xAA,#0x00,#0x00,#0x00,#0x00,#0x00,#0xAA,#0x40,#0x00,#0xC0,#0xFF,#0x00
.db #0xAA,#0x40,#0x00,#0xC8,#0xAA,#0x00,#0x00,#0x00,#0x00,#0x00,#0xAA,#0x40,#0x55,#0x80,#0xFF,#0x00
.db #0xAA,#0x40,#0x55,#0x80,#0xAA,#0x00,#0x00,#0x00,#0x00,#0x4C,#0xAA,#0x40,#0x55,#0x80,#0xFF,#0x00
.db #0xAA,#0x40,#0x55,#0x80,#0xAA,#0x44,#0x00,#0x00,#0x00,#0x4C,#0xAA,#0x40,#0x55,#0x80,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xAA,#0x04,#0x00,#0x08,#0x00,#0x0C,#0x00,#0xC8,#0x55,#0x80,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xAA,#0x04,#0x00,#0x4C,#0x00,#0x0C,#0x55,#0x88,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xAA,#0x04,#0x55,#0x88,#0x00,#0x8C,#0x55,#0x88,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0x84,#0x55,#0x88,#0xAA,#0x44,#0x55,#0x88,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0xC0,#0x55,#0x80,#0xAA,#0x40,#0x55,#0x80,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0xC0,#0x55,#0x80,#0xAA,#0x40,#0x55,#0x80,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0xC0,#0x55,#0x80,#0xAA,#0x40,#0x55,#0x80,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0xC0,#0x55,#0x80,#0xAA,#0x40,#0x00,#0xC0,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0xC0,#0x55,#0x80,#0xAA,#0x40,#0x00,#0xC0,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0xC0,#0x00,#0xC0,#0xAA,#0x40,#0x00,#0xC0,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0xC0,#0x00,#0xC0,#0xAA,#0x40,#0x00,#0xC0,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0xC0,#0x00,#0xC0,#0xAA,#0x40,#0x00,#0xC0,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0xC0,#0x00,#0xC0,#0xAA,#0x40,#0x00,#0xC0,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0xC0,#0x00,#0xC0,#0xAA,#0x40,#0x00,#0xC0,#0x55,#0x80,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0xC8,#0x00,#0xC0,#0xAA,#0x40,#0x00,#0xC0,#0x55,#0x80,#0xFF,#0x00
.db #0xFF,#0x00,#0xAA,#0x40,#0x00,#0xC0,#0x00,#0xC0,#0xFF,#0x00,#0x00,#0xC0,#0x55,#0x80,#0xFF,#0x00
.db #0xFF,#0x00,#0x00,#0xC0,#0x00,#0xC0,#0x00,#0xC0,#0xFF,#0x00,#0x00,#0xC0,#0x55,#0x80,#0xFF,#0x00
.db #0xFF,#0x00,#0x00,#0xC0,#0x00,#0xC0,#0x00,#0xC0,#0xFF,#0x00,#0x00,#0xC0,#0x55,#0x80,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0x00,#0xC0,#0x55,#0x80,#0xFF,#0x00



_dbl_1:
.db 8,40
.db #0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xAA,#0x11,#0x55,#0x22,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0x00,#0x33,#0x00,#0xB1,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xAA,#0x11,#0x00,#0x33,#0x00,#0x3C,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xAA,#0x11,#0x55,#0x22,#0xFF,#0x00,#0xAA,#0x11,#0x00,#0x33
.db #0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0x00,#0x33,#0xFF,#0x00,#0xFF,#0x00,#0x00,#0x33,#0x55,#0xA0
.db #0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0x00,#0x33,#0xFF,#0x00,#0xAA,#0x11,#0x00,#0x33,#0x00,#0x3C
.db #0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0x00,#0x33,#0xFF,#0x00,#0x00,#0x33,#0x55,#0x22,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xAA,#0x01,#0x00,#0x33,#0x00,#0x46,#0x00,#0x33,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0x23,#0x00,#0x33,#0x00,#0x46,#0x00,#0x33,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0x23,#0x00,#0x03,#0x00,#0x46,#0x00,#0x03,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xAA,#0x11,#0x00,#0x23,#0x00,#0x03,#0x00,#0x89,#0x00,#0x03,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xAA,#0x11,#0x00,#0x89,#0x00,#0x03,#0x00,#0x03,#0x00,#0x03,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0x00,#0x99,#0x55,#0x88,#0x00,#0x03,#0x00,#0x03,#0x00,#0x13,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0x00,#0x66,#0x55,#0x88,#0x00,#0x46,#0x00,#0xB1,#0x00,#0xE4,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0x00,#0x33,#0xFF,#0x00,#0x00,#0xCC,#0x00,#0x33,#0x00,#0x33,#0x55,#0x22,#0xFF,#0x00
.db #0xFF,#0x00,#0x00,#0x33,#0xFF,#0x00,#0x00,#0x99,#0x00,#0xB1,#0x00,#0xB1,#0x00,#0x33,#0xFF,#0x00
.db #0xFF,#0x00,#0x00,#0x33,#0x55,#0x22,#0x00,#0x03,#0x00,#0x03,#0x00,#0x13,#0x00,#0x33,#0xFF,#0x00
.db #0xFF,#0x00,#0x00,#0x66,#0x55,#0x88,#0x00,#0x03,#0x00,#0x03,#0x55,#0x02,#0x00,#0x33,#0xFF,#0x00
.db #0xFF,#0x00,#0xAA,#0x11,#0x55,#0x22,#0x00,#0x03,#0x00,#0x03,#0x55,#0x02,#0x00,#0x66,#0x55,#0x22
.db #0xFF,#0x00,#0xAA,#0x11,#0x00,#0x33,#0x00,#0x99,#0x00,#0x03,#0x55,#0x02,#0xAA,#0x11,#0x00,#0x33
.db #0xFF,#0x00,#0xAA,#0x14,#0xAA,#0x14,#0x00,#0x99,#0x00,#0x03,#0x55,#0x88,#0xAA,#0x14,#0xAA,#0x14
.db #0xFF,#0x00,#0xFF,#0x00,#0xAA,#0x44,#0x00,#0x33,#0x00,#0x13,#0x55,#0x22,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xAA,#0x44,#0x00,#0x33,#0x00,#0x99,#0x55,#0x22,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xAA,#0x11,#0x00,#0x66,#0xAA,#0x44,#0x55,#0x22,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xAA,#0x44,#0x55,#0x88,#0xAA,#0x44,#0x00,#0x99,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xAA,#0x11,#0x55,#0x22,#0xAA,#0x11,#0x00,#0x33,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xAA,#0x11,#0x55,#0x22,#0xAA,#0x11,#0x00,#0x33,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xAA,#0x11,#0x55,#0x22,#0xAA,#0x11,#0x00,#0x33,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0x39,#0x55,#0x28,#0xAA,#0x14,#0x00,#0x36,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0x33,#0x55,#0x22,#0xAA,#0x11,#0x00,#0x33,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0x33,#0x55,#0x22,#0x00,#0x33,#0x00,#0x33,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0x39,#0x55,#0x28,#0x00,#0x36,#0x00,#0x36,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0x33,#0x55,#0x22,#0x00,#0x33,#0x00,#0x33,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0x33,#0x55,#0x22,#0x00,#0x33,#0x00,#0x33,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xAA,#0x11,#0x00,#0x33,#0x55,#0x22,#0x00,#0x33,#0x00,#0x33,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xAA,#0x11,#0x00,#0x33,#0x55,#0x22,#0x00,#0x33,#0x00,#0x66,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xAA,#0x01,#0x00,#0x03,#0xFF,#0x00,#0x00,#0x03,#0x00,#0x03,#0x55,#0x02,#0xFF,#0x00
.db #0xFF,#0x00,#0xAA,#0x01,#0x00,#0x03,#0xFF,#0x00,#0x00,#0x03,#0x00,#0x03,#0x00,#0x03,#0xFF,#0x00
.db #0xFF,#0x00,#0xAA,#0x01,#0x00,#0x03,#0xFF,#0x00,#0x00,#0x03,#0x00,#0x03,#0x00,#0x03,#0xFF,#0x00
.db #0xFF,#0x00,#0xAA,#0x01,#0x00,#0x03,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00

_dbl_2:
.db 8,40
.db #0xFF,#0x00,#0xFF,#0x00,#0xAA,#0x11,#0x55,#0x22,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0x72,#0x00,#0x33,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0x3C,#0x00,#0x33,#0x55,#0x22,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00
.db #0x00,#0x33,#0x55,#0x22,#0xFF,#0x00,#0xAA,#0x11,#0x55,#0x22,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00
.db #0xAA,#0x50,#0x00,#0x33,#0xFF,#0x00,#0xFF,#0x00,#0x00,#0x33,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00
.db #0x00,#0x3C,#0x00,#0x33,#0x55,#0x22,#0xFF,#0x00,#0x00,#0x33,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xAA,#0x11,#0x00,#0x33,#0xFF,#0x00,#0x00,#0x33,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0x33,#0x00,#0x89,#0x00,#0x33,#0x55,#0x02,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0x33,#0x00,#0x89,#0x00,#0x33,#0x00,#0x13,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0x03,#0x00,#0x89,#0x00,#0x03,#0x00,#0x13,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0x03,#0x00,#0x46,#0x00,#0x03,#0x00,#0x13,#0x55,#0x22,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0x03,#0x00,#0x03,#0x00,#0x03,#0x00,#0x46,#0x55,#0x22,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0x23,#0x00,#0x03,#0x00,#0x03,#0xAA,#0x44,#0x00,#0x66,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0xD8,#0x00,#0x72,#0x00,#0x89,#0xAA,#0x44,#0x00,#0x99,#0xFF,#0x00
.db #0xFF,#0x00,#0xAA,#0x11,#0x00,#0x33,#0x00,#0x33,#0x00,#0xCC,#0xFF,#0x00,#0x00,#0x33,#0xFF,#0x00
.db #0xFF,#0x00,#0x00,#0x33,#0x00,#0x72,#0x00,#0x72,#0x00,#0x66,#0xFF,#0x00,#0x00,#0x33,#0xFF,#0x00
.db #0xFF,#0x00,#0x00,#0x33,#0x00,#0x23,#0x00,#0x03,#0x00,#0x03,#0xAA,#0x11,#0x00,#0x33,#0xFF,#0x00
.db #0xFF,#0x00,#0x00,#0x33,#0xAA,#0x01,#0x00,#0x03,#0x00,#0x03,#0xAA,#0x44,#0x00,#0x99,#0xFF,#0x00
.db #0xAA,#0x11,#0x00,#0x99,#0xAA,#0x01,#0x00,#0x03,#0x00,#0x03,#0xAA,#0x11,#0x55,#0x22,#0xFF,#0x00
.db #0x00,#0x33,#0x55,#0x22,#0xAA,#0x01,#0x00,#0x03,#0x00,#0x66,#0x00,#0x33,#0x55,#0x22,#0xFF,#0x00
.db #0x55,#0x28,#0x55,#0x28,#0xAA,#0x44,#0x00,#0x03,#0x00,#0x66,#0x55,#0x28,#0x55,#0x28,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xAA,#0x11,#0x00,#0x23,#0x00,#0x33,#0x55,#0x88,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xAA,#0x11,#0x00,#0x66,#0x00,#0x33,#0x55,#0x88,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xAA,#0x11,#0x55,#0x88,#0x00,#0x99,#0x55,#0x22,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0x66,#0x55,#0x88,#0xAA,#0x44,#0x55,#0x88,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0x33,#0x55,#0x22,#0xAA,#0x11,#0x55,#0x22,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0x33,#0x55,#0x22,#0xAA,#0x11,#0x55,#0x22,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0x33,#0x55,#0x22,#0xAA,#0x11,#0x55,#0x22,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0x39,#0x55,#0x28,#0xAA,#0x14,#0x00,#0x36,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0x33,#0x55,#0x22,#0xAA,#0x11,#0x00,#0x33,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0x33,#0x00,#0x33,#0xAA,#0x11,#0x00,#0x33,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0x39,#0x00,#0x39,#0xAA,#0x14,#0x00,#0x36,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0x33,#0x00,#0x33,#0xAA,#0x11,#0x00,#0x33,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0x33,#0x00,#0x33,#0xAA,#0x11,#0x00,#0x33,#0xFF,#0x00,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0x33,#0x00,#0x33,#0xAA,#0x11,#0x00,#0x33,#0x55,#0x22,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0x00,#0x99,#0x00,#0x33,#0xAA,#0x11,#0x00,#0x33,#0x55,#0x22,#0xFF,#0x00
.db #0xFF,#0x00,#0xAA,#0x01,#0x00,#0x03,#0x00,#0x03,#0xFF,#0x00,#0x00,#0x03,#0x55,#0x02,#0xFF,#0x00
.db #0xFF,#0x00,#0x00,#0x03,#0x00,#0x03,#0x00,#0x03,#0xFF,#0x00,#0x00,#0x03,#0x55,#0x02,#0xFF,#0x00
.db #0xFF,#0x00,#0x00,#0x03,#0x00,#0x03,#0x00,#0x03,#0xFF,#0x00,#0x00,#0x03,#0x55,#0x02,#0xFF,#0x00
.db #0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0xFF,#0x00,#0x00,#0x03,#0x55,#0x02,#0xFF,#0x00


// There is a tool called Sprot that allows to generate masked sprites for z88dk.
// ask for it: www.amstrad.es/forum/


_tintas: //firmware inks
.db #0,#1,#26,#13,#3,#6,#24,#15,#17,#18,#2,#16,#9,#19,#25,#11
__endasm;
}



void *p_sprites[7];

void memcpy (void *dst, void *src, unsigned int acount)
{
void *ret = dst; /* perhaps ret should be removed, use dst instead */
char *d = dst;
char *s = src;

/*
* copy from lower addresses to higher addresses
*/
while (acount--) {
*d++ = *s++;
}

}

void initPointers()
{

p_sprites[0] = &sprite00;
p_sprites[1] = &sprite01;

}

void set_colours(void)
{
unsigned char x;
for (x=0; x<16; x++)
{
cpc_SetInk(x,tintas[x]);
}
cpc_SetBorder(0);
}
void pause(void)
{
__asm
ld b,#40
pause_loop:
halt
djnz pause_loop
__endasm;
}
void collide(void)
{
cpc_SetColour(16,1);
pause();
cpc_SetColour(16,9);
}

void load_tilemap(void)
{
memcpy(tiles,tiles_propios,48);
}

void draw_tilemap(void)
{
unsigned char x,y;
//set the tiles of the map. In this example, the tile map is 32x16 tile
//Tile Map configuration file: TileMapConf.asm


//CIELO DESPEJADO
for(y=0; y<15; y++)
{
for (x=0; x<32; x++)
{
cpc_SetTile(x,y,0);
}
}

//SUELO
y=15;
for (x=0; x<32; x++)
{
cpc_SetTile(x,y,1);
}

//Edificio 1
for (x=3; x<7; x++)
{
for(y=8; y<15; y++)
{
cpc_SetTile(x,y,2);
}
}
//Edificio 2
for (x=8; x<12; x++)
{
for(y=8; y<15; y++)
{
cpc_SetTile(x,y,2);
}
}


//Edificio 3
for (x=16; x<22; x++)
{
for(y=5; y<15; y++)
{
cpc_SetTile(x,y,2);
}
}






}

void print_credits(void)
{
cpc_PrintGphStrXY("SMALL;SPRITE;DEMO",9*2+3,20*8);
cpc_PrintGphStrXY("SDCC;;;CPCRSLIB",10*2+3,21*8);
cpc_PrintGphStrXY("BY;ARTABURU;2012",10*2+3-1,22*8);
cpc_PrintGphStrXY("ESPSOFT<AMSTRAD<ES",10*2+3-3,24*8);
}

main()
{
unsigned char a;

initPointers();


set_colours();
cpc_SetInkGphStr(0,0);
cpc_SetModo(0);

cpc_DisableFirmware();
// All the sprite values are initilized
sprite00.sp1=maz_1;
sprite00.sp0=maz_1;
sprite00.ox=20;
sprite00.oy=80;
sprite00.cx=20;
sprite00.cy=80;
sprite00.move1=3;
cpc_SuperbufferAddress(p_sprites[0]); //first time it's important to do this

sprite01.sp1=dbl_1;
sprite01.sp0=dbl_1;
sprite01.ox=50;
sprite01.oy=80;
sprite01.cx=50;
sprite01.cy=80;
sprite01.move=1;
sprite01.move1=3;
cpc_SuperbufferAddress(p_sprites[1]);

//Drawing the tile map
load_tilemap();
draw_tilemap();
cpc_ShowTileMap(); //Show entire tile map in the screen
print_credits();
cpc_SetTile(0,1,2);
/*cpc_GetTiles(0,0,2,3, buffer);

cpc_PutTiles(0,13,2,3, buffer);
cpc_GetTiles(0,13,2,3, buffer);
cpc_PutTiles(8,9,2,3, buffer); */

cpc_ShowTileMap(); //Show entire tile map in the screen
while(1)
{

//Default number keys for moving one of the sprites:
// 0: cursor right
// 1: cursor left
// 2: cursor up
// 3: cursor down

//for example., if key 0 is pressed, and the sprite is inside tilemap, then
//the sprite is moved one byte to the right:
if (cpc_TestKey(0)==1 && sprite00.cx<60)
{sprite00.cx++;
sprite00.sp1=sprite00.sp0;
sprite00.sp0=maz_1;
}
if (cpc_TestKey(1)==1 && sprite00.cx>0)
{sprite00.cx--;
sprite00.sp1=sprite00.sp0;
sprite00.sp0=maz_2;
}
if (cpc_TestKey(2)==1 && sprite00.cy>0) sprite00.cy-=2;
if (cpc_TestKey(3)==1 && sprite00.cy<112) sprite00.cy+=2;


// The other sprites are automatically moved
if (sprite01.move==0) //0 = left, 1 = right
{
if (sprite01.cx>30)
{sprite01.cx--;
sprite01.sp1=sprite01.sp0;
sprite01.sp0=dbl_2;
}
else sprite01.move=1;
}
if (sprite01.move==1) //0 = left, 1 = right
{
if (sprite01.cx<60)
{sprite01.cx++;
sprite01.sp1=sprite01.sp0;
sprite01.sp0=dbl_1;
}
else sprite01.move=0;
}

cpc_ResetTouchedTiles(); //clear touched tile table



//Sprite phase 1
cpc_PutSpTileMap(p_sprites[0]); //search the tiles where is and was the sprite
cpc_PutSpTileMap(p_sprites[1]);


cpc_UpdScr(); //Update the screen to new situatio (show the touched tiles)

//Sprite phase 2
cpc_PutMaskSpTileMap2b(p_sprites[0]); //Requires to move sprite with cpc_SpUpdX or cpc_SpUpdY
cpc_PutMaskSpTileMap2b(p_sprites[1]);


cpc_ShowTileMap2(); //Show the touched tiles-> show the new sprite situatuion



if (cpc_CollSp(p_sprites[0],p_sprites[1])) collide(); //test if there is collision between sprite00 and sprite01

}
}
--------
Carpeta publica [url=https://mega.nz/#F!W5IyhbLa!51JpgZqvyx6j__v12Pr9QA]MEGA Amstrad[/url]
Carpeta proyecto [url=https://github.com/KaosOverride]GitHub[/url]

KaosOverride
Keeper of The Forum
Keeper of The Forum
Mensajes: 712
Registrado: Vie 27 Feb , 2009 12:21 pm

Re: Preguntas sobre la Librería cpcrslib

Mensajepor KaosOverride » Dom 03 Mar , 2013 1:17 pm

Pues sin tener nada que ver con las pruebas anteriores, me embarco en hacer un juego que tengo intencion de presentar a la Euskal Encounter en Julio.

A ver, no espereis maravillas, de echo es mas que nada por animar un poco a que se presenten estas cosas en la Euskal.

En fin, a ver que churro me sale xDD

Le he modificado a la libreria el poner varios tiles simplemente copiando y pegando al final del .h para hacer "buffer" (por ejemplo 10 tiles, o 15)

Despues defino mis tiles (que peuden ser 30) en el ejecutable y voy copiandolos con el memcp (hay que meter el codigo entre el fuente) y copio desde mis tiles al del "motor" en bloques segun necesite cada pantalla.

Es una chapuza pero me vale mientras Artaburu no consiga la receta y tiempo para portar la cpcrslib del todo al SDCC.....

Que por cierto, vas en los creditos, Arta, como desarrollador de la libreria :P Salvo que te de miedo escenico xDDDDD
--------
Carpeta publica [url=https://mega.nz/#F!W5IyhbLa!51JpgZqvyx6j__v12Pr9QA]MEGA Amstrad[/url]
Carpeta proyecto [url=https://github.com/KaosOverride]GitHub[/url]

Avatar de Usuario
Artaburu
Trasteador
Trasteador
Mensajes: 8419
Registrado: Vie 07 Oct , 2005 6:18 pm
Ubicación: En tu pantalla

Re: Preguntas sobre la Librería cpcrslib

Mensajepor Artaburu » Jue 07 Mar , 2013 11:43 am

Joe, te puedes creer que no me entero de lo que estás haciendo. Tengo muy abandonado esto pero si necesitas que te eche una zarpa a algo puntual me dices y lo miro :D
Tu ponme en los créditos si quieres.... a nade le amarga un dulce ;)
Salu2,
Arta

Avatar de Usuario
jrodriguezv
Forero habitual
Forero habitual
Mensajes: 157
Registrado: Dom 06 May , 2012 1:55 pm

Re: Preguntas sobre la Librería cpcrslib

Mensajepor jrodriguezv » Dom 08 Dic , 2013 7:18 pm

Hola Kaos.

Este finde gracias a un virus le he podido dedicar tiempo al SDCC para CPC y estoy con los tutoriales de artaburu y el código de Marrón en la Euskal a ver si pillo algo.

Estoy por lo básico. ¿Qué herramientas has usado para generar los sprites?

Gracias

KaosOverride
Keeper of The Forum
Keeper of The Forum
Mensajes: 712
Registrado: Vie 27 Feb , 2009 12:21 pm

Re: Preguntas sobre la Librería cpcrslib

Mensajepor KaosOverride » Dom 12 Ene , 2014 2:33 am

Siento el retraso en la respuesta.

He usado integramente el sprot pqra sprites con mascara y exportar por metodo del portapapeles y reemplazo de texto para adecuar la sintaxis del z88dk al SDCC.

Los tiles he hecho los bloques compuestos en sprot modo sin mascara y exportarlo a un txt que luego lo importo en excell en modo .csv con la coma de separador, y redistribuyendo las celdas generar otro .csc con los tiles

Asi me he ahorrado un trabajo tedioso que usando el notepad...

Para que te hagas una idea... imagina un "attrezzo" de 2x2 tiles como los container de basura, las tiendas pequeñas de campaña o las mesas de la cafeteria
Tiles X Y Z J

Dibujo en sprot

XY
ZJ

Exporto a .txt/csv
.db XY
.db ZJ

Siendo XY 2X16 bytes (8x16 pixeles modo 0) y lo mismo para ZJ

XY seria
x,x,y,y
x,x,y,y
x,x,y,y
....


Lo separo en
X
Y
Z
J

Quedando
.db x,x
.db x,x
....

.db y,y
.db y,y
....

.db z,z
.db z,z
....

.db j,j
.db j,j
...

Espero se me entienda la idea....
--------
Carpeta publica [url=https://mega.nz/#F!W5IyhbLa!51JpgZqvyx6j__v12Pr9QA]MEGA Amstrad[/url]
Carpeta proyecto [url=https://github.com/KaosOverride]GitHub[/url]


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro


La Comunidad Española
ESP Soft, juegos para tu CPC Foro de Amstrad CPC Todos los juegos para CPC en un CD Web dedicada al Amstrad CPC (utilidades) Información útil para el CPC (talleres) Selección de juegos de Amstrad CPC Mundo CPC Pree Play then any Key CPC Basic