Curso de Z88DK básico + SDK para ZX Spectrum [preview]

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

Moderador: Sir Cilve Sinclair

Avatar de Usuario
javiperez
Jack The Nipper
Mensajes: 103
Registrado: Vie Ago 24, 2007 12:45 pm
Ubicación: Valladolid

Re: Curso de Z88DK básico + SDK para ZX Spectrum [preview]

Mensaje por javiperez » Sab May 03, 2014 12:04 am

Alxinho escribió:Yo es que tengo dos problemas, ni puta idea de ASM ... ni puta idea de C ... :lol:
Y cómo hiciste el Souls??? :shock:
The Spectrum will rise again to rule the Earth.
Real programmers never die. They just return without gosub.

Avatar de Usuario
Alxinho
Freddy Hardest
Mensajes: 896
Registrado: Mar Jun 19, 2007 11:20 am
Ubicación: Barcelona
Contactar:

Re: Curso de Z88DK básico + SDK para ZX Spectrum [preview]

Mensaje por Alxinho » Sab May 03, 2014 11:17 am

Pues ... en BASIC :lol:

Compilado eso sí, sino iría más lento que el caballo del malo. Todos mis juegos están programados con el compilador cruzado ZXBASIC de Boriel.

Gracias por cierto :oops:
Retrobytes Productions --> http://retrobytesproductions.blogspot.com.es

Soy un tío feliz, más que nada ... porque me sale más a cuenta.

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

Re: Curso de Z88DK básico + SDK para ZX Spectrum [preview]

Mensaje por radastan » Sab May 03, 2014 11:17 pm

Hark0 escribió:Como hago un rand ?


Integraré el rand de la churrera.
_________________________________________
Hay otras páginas.... pero no son Bytemaniacos
http://www.bytemaniacos.com
Orgullo de 8 bits
_________________________________________

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

Re: Curso de Z88DK básico + SDK para ZX Spectrum [preview]

Mensaje por radastan » Sab May 03, 2014 11:18 pm

Alxinho escribió:Yo es que tengo dos problemas, ni puta idea de ASM ... ni puta idea de C ... :lol:


Si te miraras lo que hay de curso lo mismo te darías cuenta que sabes algo de C por saber BASIC...
_________________________________________
Hay otras páginas.... pero no son Bytemaniacos
http://www.bytemaniacos.com
Orgullo de 8 bits
_________________________________________

Avatar de Usuario
Alxinho
Freddy Hardest
Mensajes: 896
Registrado: Mar Jun 19, 2007 11:20 am
Ubicación: Barcelona
Contactar:

Re: Curso de Z88DK básico + SDK para ZX Spectrum [preview]

Mensaje por Alxinho » Dom May 04, 2014 2:07 am

Mirármelo me lo miraré pero es que primero tengo que acabar lo que estoy haciendo! :|
Retrobytes Productions --> http://retrobytesproductions.blogspot.com.es

Soy un tío feliz, más que nada ... porque me sale más a cuenta.

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

Re: Curso de Z88DK básico + SDK para ZX Spectrum [preview]

Mensaje por Hark0 » Dom May 04, 2014 1:05 pm

radastan escribió:
Alxinho escribió:Yo es que tengo dos problemas, ni puta idea de ASM ... ni puta idea de C ... :lol:


Si te miraras lo que hay de curso lo mismo te darías cuenta que sabes algo de C por saber BASIC...


Instalate Noetepad++ y sigue el pdf de Radastan... verás que no es tan dificil. :wink:
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: Curso de Z88DK básico + SDK para ZX Spectrum [preview]

Mensaje por Hark0 » Dom May 04, 2014 1:11 pm

radastan escribió:
Hark0 escribió:Como hago un rand ?


Integraré el rand de la churrera.


Gracias!

Dos preguntas:
1- Cuando declaras un sprite y luego lo usamos con putsprite_... veo que usas

unsigned char XXXX.

Yo he probado lo siguiente:
- He editado motorzx.h y he cambiado el unsigned char *puntero por unsigned int *puntero.
- He añadido un unsigned int mem_sprites[x];
- mem_sprites[0]=sprite0;
- mem_sprites[1]=sprite1;
etc.

- Para pintar putsprite(mem_sprites[num_sprite],x,y);

Y así me ahorro los switch para pintar el numero de sprite...

¿es buena idea o estoy gastando MAS ram?

2- ¿puedo hacer algo como esto¿ (glbasic)

TYPE Boton
tipo
grafico
posx
posy
ancho
alto
pantalla
disponible
estado
texto$
ENDTYPE

GLOBAL HRW_Boton[] AS Boton
GLOBAL HRW_Boton_Cantidad
GLOBAL HRW_Boton_Seleccionado

luego se usa tipo HRW_Boton[num_boton].posx=32

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

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

Re: Curso de Z88DK básico + SDK para ZX Spectrum [preview]

Mensaje por radastan » Dom May 04, 2014 1:47 pm

Hark0 escribió:Dos preguntas:
1- Cuando declaras un sprite y luego lo usamos con putsprite_... veo que usas

unsigned char XXXX.

Yo he probado lo siguiente:
- He editado motorzx.h y he cambiado el unsigned char *puntero por unsigned int *puntero.
- He añadido un unsigned int mem_sprites[x];
- mem_sprites[0]=sprite0;
- mem_sprites[1]=sprite1;
etc.

- Para pintar putsprite(mem_sprites[num_sprite],x,y);

Y así me ahorro los switch para pintar el numero de sprite...

¿es buena idea o estoy gastando MAS ram?


Lo que has echo es una matriz de punteros, que es la forma correcta y optimizada de hacer la selección de tile o de sprite. Evidentemente es lo mejor que puedes hacer y evitas, tal y como has visto, el switch. En el curso seguiré poniendo el switch, esa parte la explico más delante como optimización. No puedo explicarle de buenas a primeras a alguien lo que es una matriz de punteros sin que se sepa manejar con ellos antes.

Hark0 escribió:2- ¿puedo hacer algo como esto¿ (glbasic)

TYPE Boton
tipo
grafico
posx
posy
ancho
alto
pantalla
disponible
estado
texto$
ENDTYPE

GLOBAL HRW_Boton[] AS Boton
GLOBAL HRW_Boton_Cantidad
GLOBAL HRW_Boton_Seleccionado

luego se usa tipo HRW_Boton[num_boton].posx=32

:mrgreen:


Pues si te digo la verdad eso es más propio de C++ que de C. No he llegado a tanto con el Z88DK, pero lo mismo se puede poniendo puntos. Ejemplo: prota.x
_________________________________________
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: Curso de Z88DK básico + SDK para ZX Spectrum [preview]

Mensaje por Hark0 » Dom May 04, 2014 2:03 pm

Ok entendido los punteros... ;-)

Entones gasta la misma ram verdad? (meter grfx como int en lugar de char)
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: Curso de Z88DK básico + SDK para ZX Spectrum [preview]

Mensaje por Hark0 » Dom May 04, 2014 3:01 pm

Respecto a la otra pregunta...

http://www.z88dk.org/wiki/doku.php?id=e ... :snakegame

Ver trozo:

Código: Seleccionar todo

struct snake_segment {
int row;
int col;
} snake[100];


Y luego usan:
snake[n].col=valor;

Esta noche si tengo tiempo, lo cato.


PD Explicación del uso de STRUCT en C... http://es.wikibooks.org/wiki/Programación_en_C/Estructuras_y_Uniones
litiopixel.blogspot.com - Desarrollo videojuegos Indie · Pixel-Art · Retroinformática · Electrónica

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

Re: Curso de Z88DK básico + SDK para ZX Spectrum [preview]

Mensaje por radastan » Dom May 04, 2014 5:54 pm

Hark0 escribió:Ok entendido los punteros... ;-)

Entones gasta la misma ram verdad? (meter grfx como int en lugar de char)


Es que no estás metiendo GFX como int, estás metiéndolos como char y el puntero a donde comienzan en una matriz int.

Si metieras los gráficos como int te ocuparían el doble.
_________________________________________
Hay otras páginas.... pero no son Bytemaniacos
http://www.bytemaniacos.com
Orgullo de 8 bits
_________________________________________

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

Re: Curso de Z88DK básico + SDK para ZX Spectrum [preview]

Mensaje por radastan » Dom May 04, 2014 5:56 pm

Hark0 escribió:Respecto a la otra pregunta...


Pues si, Z88Dk acepta estructuras, genial. No obstante en pocos juegos le veo sentido, si acaso en aventuras conversacionales.
_________________________________________
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: Curso de Z88DK básico + SDK para ZX Spectrum [preview]

Mensaje por Hark0 » Lun May 05, 2014 10:47 am

radastan escribió:
Hark0 escribió:Respecto a la otra pregunta...


Pues si, Z88Dk acepta estructuras, genial. No obstante en pocos juegos le veo sentido, si acaso en aventuras conversacionales.


Pues yo le veo un montón más de utilidades, por ejemplo esto: (probado y funca)

Esto en las declaraciones de variables:

Código: Seleccionar todo

//-------------------------------------------------------- Declarando Enemigos Pacman
struct bot_enemigo
  {
      unsigned char posX;
      unsigned char posY;
      unsigned char sprite;
      unsigned char activado;
      unsigned char nombre;
  } fantasmas[4];


Esto en la rutina de inicializar variables:

Código: Seleccionar todo

fantasmas[0].posX=0;
fantasmas[0].posY=0;
fantasmas[0].sprite=0;
fantasmas[0].activado=1;
fantasmas[0].nombre='Blinky';

fantasmas[1].posX=16;
fantasmas[1].posY=0;
fantasmas[1].sprite=1;
fantasmas[1].activado=1;
fantasmas[1].nombre='Pinky';

fantasmas[2].posX=0;
fantasmas[2].posY=10;
fantasmas[2].sprite=2;
fantasmas[2].activado=1;
fantasmas[2].nombre='Inky';

fantasmas[3].posX=16;
fantasmas[3].posY=10;
fantasmas[3].sprite=3;
fantasmas[3].activado=1;
fantasmas[3].nombre='Clyde';


Ahora imaginate que en lugar de 4 enemigos.... lo haces para 200.000 bots... :P
litiopixel.blogspot.com - Desarrollo videojuegos Indie · Pixel-Art · Retroinformática · Electrónica

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

Re: Curso de Z88DK básico + SDK para ZX Spectrum [preview]

Mensaje por radastan » Lun May 05, 2014 5:43 pm

Al final haces tu el curso. xD
_________________________________________
Hay otras páginas.... pero no son Bytemaniacos
http://www.bytemaniacos.com
Orgullo de 8 bits
_________________________________________

Avatar de Usuario
Alxinho
Freddy Hardest
Mensajes: 896
Registrado: Mar Jun 19, 2007 11:20 am
Ubicación: Barcelona
Contactar:

Re: Curso de Z88DK básico + SDK para ZX Spectrum [preview]

Mensaje por Alxinho » Lun May 05, 2014 7:26 pm

Yo no tengo mucha experiencia en usar estructuras de datos pero sé que son muy útiles. Por ejemplo en juegos de naves sirven para definir las trayectorias, en juegos de lucha para los golpes o movimientos, etc, etc ... ojo, es por lo que he visto de cuando programaba en Fénix pero no los llegué a usar.
Retrobytes Productions --> http://retrobytesproductions.blogspot.com.es

Soy un tío feliz, más que nada ... porque me sale más a cuenta.

Responder

¿Quién está conectado?

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