ABANDONO, NO PUEDO MAS!!! (me largo a Z88DK)

Todo sobre la creación, diseño y programación de nuevo software para
nuestro Spectrum

Moderador: Sir Cilve Sinclair

Avatar de Usuario
Hark0
Freddy Hardest
Mensajes: 545
Registrado: Mar Nov 13, 2012 12:42 pm
Ubicación: Cornella de Llobregat - Barcelona
Contactar:

Re: ABANDONO, NO PUEDO MAS!!! (me largo a Z88DK)

Mensaje por Hark0 » Dom Abr 27, 2014 11:29 pm

radastan escribió:
Hark0 escribió:Maestro @radastan, necesito una función tipo:

put_sprite_x8(sprite8x8px,x,y);


Sin problemas, y tendrá versión "coloreable" al gusto del consumidor. :wink:

Es más lo de la versión coloreable lo veo útil hasta para la de 16x16.

Por cierto, voy a trabajar para que tenga soporte de paginación de memoria también, para que podáis usar los 128K como si fuera lo más simple del Mundo.


Moooooola... o en su defecto, una partial que de un tile 16x16 se pueda escoger SOLO UN 8x8 tipo 1v,2v,1h,2h.... :wink:
litiopixel.blogspot.com - Desarrollo videojuegos Indie · Pixel-Art · Retroinformática · Electrónica

Avatar de Usuario
radastan
Phantomas
Mensajes: 2211
Registrado: Lun May 07, 2007 5:34 pm
Contactar:

Re: ABANDONO, NO PUEDO MAS!!! (me largo a Z88DK)

Mensaje por radastan » Lun Abr 28, 2014 8:20 am

Hark0 escribió:Moooooola... o en su defecto, una partial que de un tile 16x16 se pueda escoger SOLO UN 8x8 tipo 1v,2v,1h,2h.... :wink:


Vale, ¿lo dices por el movimiento diagonal? es que hay truco...
_________________________________________
Hay otras páginas.... pero no son Bytemaniacos
http://www.bytemaniacos.com
Orgullo de 8 bits
_________________________________________

Avatar de Usuario
Hark0
Freddy Hardest
Mensajes: 545
Registrado: Mar Nov 13, 2012 12:42 pm
Ubicación: Cornella de Llobregat - Barcelona
Contactar:

Re: ABANDONO, NO PUEDO MAS!!! (me largo a Z88DK)

Mensaje por Hark0 » Lun Abr 28, 2014 8:45 am

Ya modifique mi codigo y los movimientos diagonales funcionaban bien... solo que en la cinta que hay en el hilo actaulmente ME LOS HE CEPILLADO, no quiero que el keko vaya en diagonal, no voy a reescribir un Gauntlet... :P


Pregunto... si quiero primitivas graficas como lineas, rectangulos etc... entiendo que cargo la lib de turno de Z88DK y "palante" ¿ok?

Y otra cosita... ¿puedes adelantarte la ultima version de tu motorzx.h? aunque no haya man aún... podria ir catandola :P

Por cierto, tu engine se llama ¿motorzx para z88dk? ¿nombre ofisial?
litiopixel.blogspot.com - Desarrollo videojuegos Indie · Pixel-Art · Retroinformática · Electrónica

Avatar de Usuario
radastan
Phantomas
Mensajes: 2211
Registrado: Lun May 07, 2007 5:34 pm
Contactar:

Re: ABANDONO, NO PUEDO MAS!!! (me largo a Z88DK)

Mensaje por radastan » Lun Abr 28, 2014 3:50 pm

Hark0 escribió:Pregunto... si quiero primitivas graficas como lineas, rectangulos etc... entiendo que cargo la lib de turno de Z88DK y "palante" ¿ok?


Efectivamente, no voy a reinventar la rueda. No creo que en ese caso quieras hacer cartuchos de 16K. Si más adelante vemos que fuese aconsejable crear rutinas propias las hacemos, pero Z88DK ya tiene un buen soporte en eso. Por no hablar que también tienes las propias rutinas de la ROM, que desde C van bastante más rapiditas porque te saltas el intérprete BASIC.

Hark0 escribió:Y otra cosita... ¿puedes adelantarte la ultima version de tu motorzx.h? aunque no haya man aún... podria ir catandola :P


Esta semana me la voy a tomar de relax, han sido varias semanas sin parar, en cuanto recomience la limpio un poco y os paso la actualización con soporte de cartuchos y el nuevo modo de vídeo del ZXUno inclusive.

Hark0 escribió:Por cierto, tu engine se llama ¿motorzx para z88dk? ¿nombre ofisial?


Pues no se me ha ocurrido ninguno, pero motorzx no queda tan mal y en inglés significa lo mismo.

Y ojo, que no es una librería, cuando termine todo tengo que pasarlo a librería para que ocupe aún menos en el código final compilado. Ahora todas las rutinas se compilan las uses o no.
_________________________________________
Hay otras páginas.... pero no son Bytemaniacos
http://www.bytemaniacos.com
Orgullo de 8 bits
_________________________________________

Avatar de Usuario
Hark0
Freddy Hardest
Mensajes: 545
Registrado: Mar Nov 13, 2012 12:42 pm
Ubicación: Cornella de Llobregat - Barcelona
Contactar:

Re: ABANDONO, NO PUEDO MAS!!! (me largo a Z88DK)

Mensaje por Hark0 » Lun Abr 28, 2014 6:02 pm

Leo "nuevo modo de vídeo del ZXUno inclusive"... :shock: :D

¿se puede probar ESTO sin tener el hardware?

¿via Fuse u otro?
litiopixel.blogspot.com - Desarrollo videojuegos Indie · Pixel-Art · Retroinformática · Electrónica

Avatar de Usuario
radastan
Phantomas
Mensajes: 2211
Registrado: Lun May 07, 2007 5:34 pm
Contactar:

Re: ABANDONO, NO PUEDO MAS!!! (me largo a Z88DK)

Mensaje por radastan » Lun Abr 28, 2014 6:19 pm

Hark0 escribió:Leo "nuevo modo de vídeo del ZXUno inclusive"... :shock: :D

¿se puede probar ESTO sin tener el hardware?

¿via Fuse u otro?


Estoy tratando de convencer al autor de JSpeccy... lo vi en Retromadrid y dijo que lo miraría. Como lo consiga le hago una estatua.
_________________________________________
Hay otras páginas.... pero no son Bytemaniacos
http://www.bytemaniacos.com
Orgullo de 8 bits
_________________________________________

Avatar de Usuario
Hark0
Freddy Hardest
Mensajes: 545
Registrado: Mar Nov 13, 2012 12:42 pm
Ubicación: Cornella de Llobregat - Barcelona
Contactar:

Re: ABANDONO, NO PUEDO MAS!!! (me largo a Z88DK)

Mensaje por Hark0 » Mar Abr 29, 2014 12:39 am

Siiii!!!

Estaria de lo mas interesante :wink:

Por cierto... ¿tu con que has hecho test? ¿tienes un zxuno completo? :P
litiopixel.blogspot.com - Desarrollo videojuegos Indie · Pixel-Art · Retroinformática · Electrónica

Avatar de Usuario
Hark0
Freddy Hardest
Mensajes: 545
Registrado: Mar Nov 13, 2012 12:42 pm
Ubicación: Cornella de Llobregat - Barcelona
Contactar:

Re: ABANDONO, NO PUEDO MAS!!! (me largo a Z88DK)

Mensaje por Hark0 » Mié Abr 30, 2014 8:05 am

litiopixel.blogspot.com - Desarrollo videojuegos Indie · Pixel-Art · Retroinformática · Electrónica

Avatar de Usuario
radastan
Phantomas
Mensajes: 2211
Registrado: Lun May 07, 2007 5:34 pm
Contactar:

Re: ABANDONO, NO PUEDO MAS!!! (me largo a Z88DK)

Mensaje por radastan » Mié Abr 30, 2014 9:16 am

Al final vas a hacer que deje la semana sabática. :lol:

Usa Mappy para hacer el mapa, el conversor de mapa a .h de la churrera, y le quitas las últimas líneas al resultado. Los datos generados son fáciles de leer:

- Los tiles de cada sala están juntos de forma lineal, de izquierda a derecha y de arriba a abajo
- El orden de las salas es el mismo que el de los tiles

La rutina que os dejaré para el mapa es:

Código: Seleccionar todo

// sala es la sala a leer, numerada de izquierda a derecha y de arriba a abajo según están dispuestas en Mappy
// x e y es la posición en pantalla donde quieres poner la sala
// ancho es el ancho en tiles de la sala
// tiles es el número de tiles que tiene la sala en total
signed int dibuja_mapa (signed int sala, signed int x, signed int y, signed int ancho, signed int tiles)
{
   signed int z2, x2, y2, frame2;
   signed int sala2,sala3;
   x2=x;
   y2=y;
   frame2=0;
   sala2=sala*tiles;
   sala3=sala2+tiles;
   for (z2=sala2;z2<sala3;++z2)
   {
      // frame = 1 obstáculo
      // frame = 0 traspasable
      switch (mapa[z2])
      {
         case 0:      put_sprite_x16 (tile_0, x2, y2); frame2=1; break;
         case 1:      put_sprite_x16 (tile_1, x2, y2); frame2=1; break;
         case 2:      put_sprite_x16 (tile_2, x2, y2); frame2=1; break;
         case 3:      put_sprite_x16 (tile_3, x2, y2); frame2=1; break;
         case 4:      put_sprite_x16 (tile_4, x2, y2); frame2=1; break;
         case 5:      put_sprite_x16 (tile_5, x2, y2); frame2=1; break;
         case 6:      put_sprite_x16 (tile_6, x2, y2); frame2=1; break;
         case 7:      put_sprite_x16 (tile_7, x2, y2); frame2=1; break;
         case 8:      put_sprite_x16 (tile_8, x2, y2); frame2=1; break;
         case 9:      put_sprite_x16 (tile_9, x2, y2); frame2=1; break;
         case 10:   put_sprite_x16 (tile_10, x2, y2); frame2=1; break;
         case 11:   put_sprite_x16 (tile_11, x2, y2); frame2=1; break;
         case 12:   put_sprite_x16 (tile_12, x2, y2); frame2=1; break;
         case 13:   put_sprite_x16 (tile_13, x2, y2); frame2=1; break;
         case 14:   put_sprite_x16 (tile_14, x2, y2); frame2=1; break;
         case 15:   put_sprite_x16 (tile_15, x2, y2); frame2=1; break;
         case 16:   put_sprite_x16 (tile_16, x2, y2); frame2=0; break;
         case 17:   put_sprite_x16 (tile_17, x2, y2); frame2=1; break;
         case 18:   put_sprite_x16 (tile_18, x2, y2); frame2=1; break;
         case 19:   put_sprite_x16 (tile_19, x2, y2); frame2=1; break;
         case 20:   put_sprite_x16 (tile_20, x2, y2); frame2=1; break;
         case 21:   put_sprite_x16 (tile_21, x2, y2); frame2=1; break;
         case 22:   put_sprite_x16 (tile_22, x2, y2); frame2=1; break;
         case 23:   put_sprite_x16 (tile_23, x2, y2); frame2=1; break;
         case 24:   put_sprite_x16 (tile_24, x2, y2); frame2=1; break;
         case 25:   put_sprite_x16 (tile_25, x2, y2); frame2=1; break;
         case 26:   put_sprite_x16 (tile_26, x2, y2); frame2=1; break;
         case 27:   put_sprite_x16 (tile_27, x2, y2); frame2=1; break;
         case 28:   put_sprite_x16 (tile_28, x2, y2); frame2=1; break;
         case 29:   put_sprite_x16 (tile_29, x2, y2); frame2=1; break;
         case 30:   put_sprite_x16 (tile_30, x2, y2); frame2=1; break;
         case 31:   put_sprite_x16 (tile_31, x2, y2); frame2=1; break;
         case 32:   put_sprite_x16 (tile_32, x2, y2); frame2=1; break;
         case 33:   put_sprite_x16 (tile_33, x2, y2); frame2=1; break;
         case 34:   put_sprite_x16 (tile_34, x2, y2); frame2=1; break;
         case 35:   put_sprite_x16 (tile_35, x2, y2); frame2=1; break;
         case 36:   put_sprite_x16 (tile_36, x2, y2); frame2=1; break;
         case 37:   put_sprite_x16 (tile_37, x2, y2); frame2=1; break;
         case 38:   put_sprite_x16 (tile_38, x2, y2); frame2=1; break;
         case 39:   put_sprite_x16 (tile_39, x2, y2); frame2=1; break;
         case 40:   put_sprite_x16 (tile_40, x2, y2); frame2=1; break;
         case 41:   put_sprite_x16 (tile_41, x2, y2); frame2=1; break;
         case 42:   put_sprite_x16 (tile_42, x2, y2); frame2=1; break;
         case 43:   put_sprite_x16 (tile_43, x2, y2); frame2=1; break;
         case 44:   put_sprite_x16 (tile_44, x2, y2); frame2=1; break;
         case 45:   put_sprite_x16 (tile_45, x2, y2); frame2=1; break;
         case 46:   put_sprite_x16 (tile_46, x2, y2); frame2=1; break;
         case 47:   put_sprite_x16 (tile_47, x2, y2); frame2=1; break;
         default: break;
      }
      pantalla [x2+(y2*32)]=frame2;
      pantalla [x2+1+(y2*32)]=frame2;
      pantalla [x2+((y2+1)*32)]=frame2;
      pantalla [x2+1+((y2+1)*32)]=frame2;
      ++x2;
      ++x2;
      if (x2==ancho+x)
      {
         x2=x;
         ++y2;
         ++y2;
      }
   }
}


Uso una matriz pantalla:

Código: Seleccionar todo

char pantalla [768];


Debe ser declarada antes del MAIN (es decir, fuera de las funciones) para que sea global.

Con eso ganas que "pantalla" tiene una matriz que coincide con los caracteres de pantalla y te dice si hay obstáculos, por lo que puedes también añadir ahí los enemigos y se hace muy sencillo comprobar colisiones.

En el ejemplo que te he dado de impresión de mapas el tile 17 (se empieza por el cero) es el que hace de suelo atravesable.

OJO: el primero tile, el cero, siempre tiene que ser totalmente en negro. Cosas de Mappy.
_________________________________________
Hay otras páginas.... pero no son Bytemaniacos
http://www.bytemaniacos.com
Orgullo de 8 bits
_________________________________________

Avatar de Usuario
Hark0
Freddy Hardest
Mensajes: 545
Registrado: Mar Nov 13, 2012 12:42 pm
Ubicación: Cornella de Llobregat - Barcelona
Contactar:

Re: ABANDONO, NO PUEDO MAS!!! (me largo a Z88DK)

Mensaje por Hark0 » Mié Abr 30, 2014 9:57 am

Te agradezco toda la info que me comentas acerca de Mappy.... pero pregunto

¿realmente necesito usar OTRA herramienta cuando ya me aclaro con la definición que he hecho?
¿ahorro bytes o gano velocidad?


¿Esto es incorrecto?

Código: Seleccionar todo

unsigned char mapa_trabajo[160];
extern unsigned char mapa1 [];
extern unsigned char mapa2 [];

#asm
   ._mapa1
   defb 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
   defb 1,3,3,3,3,3,2,2,2,1,0,0,0,0,0,1   
   defb 1,3,3,3,2,2,2,2,2,1,0,1,0,0,0,1
   defb 1,3,3,3,2,3,2,2,2,1,0,1,0,0,0,1
   defb 1,3,3,3,2,3,3,3,3,1,0,1,0,0,0,1
   defb 1,3,3,3,2,3,1,1,1,1,0,1,3,1,3,1
   defb 1,3,3,3,2,3,1,2,2,1,0,1,3,1,3,1
   defb 1,3,3,3,2,2,2,2,2,0,0,1,3,1,3,1
   defb 1,3,3,3,2,2,2,2,2,0,0,1,3,1,3,3
   defb 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1

   ._mapa2
   defb 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
   defb 1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1   
   defb 1,3,2,3,3,3,3,3,3,3,3,3,3,2,3,1   
   defb 1,3,3,3,3,3,3,2,3,3,3,3,3,3,3,1   
   defb 1,3,3,3,2,3,3,3,3,2,1,3,3,3,3,1   
   defb 1,3,3,3,3,3,3,3,3,3,1,3,3,3,3,1   
   defb 1,3,3,3,3,3,1,1,1,1,1,2,3,3,3,1   
   defb 1,3,3,3,3,3,1,3,3,3,1,3,2,3,3,1   
   defb 3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,1   
   defb 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
#endasm


Para cargar el mapa que toca:

Código: Seleccionar todo

void carga_datos_mapa (void)
{

   if (mapa_actual==1)
      {
      for (x=0;x<161;x++)
         {
         mapa_trabajo[x]=mapa1[x];
         }
      }

   if (mapa_actual==2)
   {
   for (x=0;x<161;x++)
      {
      mapa_trabajo[x]=mapa2[x];
      }
   }

}


Que pienso cambiar por un switch()...

Aclaramelo plis...

PD Sabatica? A mi me vienen 4 dias de fiesta.... si tuviera más chichca que catar.... :lol: :roll:
litiopixel.blogspot.com - Desarrollo videojuegos Indie · Pixel-Art · Retroinformática · Electrónica

Avatar de Usuario
radastan
Phantomas
Mensajes: 2211
Registrado: Lun May 07, 2007 5:34 pm
Contactar:

Re: ABANDONO, NO PUEDO MAS!!! (me largo a Z88DK)

Mensaje por radastan » Mié Abr 30, 2014 10:48 am

Hark0 escribió:Te agradezco toda la info que me comentas acerca de Mappy.... pero pregunto

¿realmente necesito usar OTRA herramienta cuando ya me aclaro con la definición que he hecho?
¿ahorro bytes o gano velocidad?


Ganas en que si tienes que hacer un mapa de 48 pantallas, por ejemplo, tienes una herramienta con la que diseñarlas de forma MUY cómoda y profesional. Que si tienes que hacer una modificación en el mapa o meter más tiles es supersencillo. Que los mapas generados con Mappy te sirven en otras plataformas. Etc.

No vas a ahorrar nada, aunque hay rutinas de compresión para Mappy con su versión descompresora para Z88DK, por lo que en caso de necesidad puedes usarlas.

Tu mismo, que nadie te obliga, pero ya que aprendes algo hazlo usando un estándar y tendrás más ventajas. Lo bueno es que puedes elegir, tienes el control absoluto de tu código, yo sólo te he dado otra opción.
_________________________________________
Hay otras páginas.... pero no son Bytemaniacos
http://www.bytemaniacos.com
Orgullo de 8 bits
_________________________________________

Avatar de Usuario
Hark0
Freddy Hardest
Mensajes: 545
Registrado: Mar Nov 13, 2012 12:42 pm
Ubicación: Cornella de Llobregat - Barcelona
Contactar:

Re: ABANDONO, NO PUEDO MAS!!! (me largo a Z88DK)

Mensaje por Hark0 » Mié Abr 30, 2014 12:46 pm

Ok, le echaré un ojete... supongo que es del mimo palo que TilED: http://www.mapeditor.org/ que es el que gastaba hasta ahora...

Gracias por la aclaración!

:wink:

Por cierto... vuelvo a repetirme :mrgreen:
zxuno: ¿tu con que has hecho el test de pantalla? ¿tienes un zxuno completo? :P
litiopixel.blogspot.com - Desarrollo videojuegos Indie · Pixel-Art · Retroinformática · Electrónica

Avatar de Usuario
radastan
Phantomas
Mensajes: 2211
Registrado: Lun May 07, 2007 5:34 pm
Contactar:

Re: ABANDONO, NO PUEDO MAS!!! (me largo a Z88DK)

Mensaje por radastan » Mié Abr 30, 2014 2:03 pm

Hark0 escribió:Ok, le echaré un ojete... supongo que es del mimo palo que TilED: http://www.mapeditor.org/ que es el que gastaba hasta ahora...


Para que veas que no soy cabezón, voy a probar el TilED a ver si sale igual o lo mismo nos vale mejor porqu egenera el código directamente. Ni se me había pasado por la cabeza.

EDITADO: nada, no genera código que nos pueda servir directamente. Lo mismo lo suyo sería hacer una app en Java propia, miraré a ver mañana.

Hark0 escribió:Por cierto... vuelvo a repetirme :mrgreen:
zxuno: ¿tu con que has hecho el test de pantalla? ¿tienes un zxuno completo? :P


Tengo un ZXUno, pero sin montar. McLeod hace de conejillo de indias. :lol:
Última edición por radastan el Mié Abr 30, 2014 2:09 pm, editado 1 vez en total.
_________________________________________
Hay otras páginas.... pero no son Bytemaniacos
http://www.bytemaniacos.com
Orgullo de 8 bits
_________________________________________

Avatar de Usuario
Hark0
Freddy Hardest
Mensajes: 545
Registrado: Mar Nov 13, 2012 12:42 pm
Ubicación: Cornella de Llobregat - Barcelona
Contactar:

Re: ABANDONO, NO PUEDO MAS!!! (me largo a Z88DK)

Mensaje por Hark0 » Mié Abr 30, 2014 2:08 pm

Ok, ya me cuentas sobre los de TilED... ;)

No es por usar uno u otro... ni por discutirte, al contrario, cuantas más apps sepa que existan, más opciones... :)

...

Pobre Mcleod.... :P

Yo tuve la placa zxuno en la mano cuando llegaron del fabricante, cuando vi las distancias entre pistas de la FPGA, se me "destrempó" el soldador... y se la pase de nuevo a AV... :mrgreen:
litiopixel.blogspot.com - Desarrollo videojuegos Indie · Pixel-Art · Retroinformática · Electrónica

Avatar de Usuario
antoniovillena
Nonamed
Mensajes: 1162
Registrado: Dom Ene 09, 2011 8:55 am

Re: ABANDONO, NO PUEDO MAS!!! (me largo a Z88DK)

Mensaje por antoniovillena » Mié Abr 30, 2014 8:40 pm

No sé para qué necesitáis Tiled exactamente, pero yo lo he usado en la Churrera y funciona bien. Si me decís cómo es el mapa a codificar os hago la herramienta que pase de .tmx (archivo que usa Tiled) al binario que necesitéis.
Imagen

Responder

¿Quién está conectado?

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