Ralentizar juego compilado (hisoft basic compiler)

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

Moderador: Sir Cilve Sinclair

Ralentizar juego compilado (hisoft basic compiler)

Notapor Hark0 el Sab Abr 19, 2014 7:11 am

Buenas!

Sigo con mis pruebas con Basic... cuando tengo tiempo...

Ayer me da por compilar mi juego con Hisoft Basic Compiler... RESULTA INJUGABLE DE LO RAPIDO QUE VA! :mrgreen:

¿cómo calcular algún tipo de pausa para que el juego no vaya desbocado?

Compilado diria que corre X10 veces más rápido... :shock:
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 1:42 pm
Ubicación: Cornella de Llobregat - Barcelona

Re: Ralentizar juego compilado (hisoft basic compiler)

Notapor Alxinho el Sab Abr 19, 2014 4:00 pm

Yo en ZxBasic les pongo un delay incrustando en assembler:

asm
halt
end asm

O sino a los quecos les pongo un contador y cuando llega a un valor ejecuta el código del mismo
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
Alxinho
Freddy Hardest
 
Mensajes: 896
Registrado: Mar Jun 19, 2007 11:20 am
Ubicación: Barcelona

Re: Ralentizar juego compilado (hisoft basic compiler)

Notapor Hark0 el Dom Abr 20, 2014 8:35 am

Claro, es lo que habia pensado... añadir alguna especie de contador... hmmm tendré que hacer pruebas de valores a ver...
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 1:42 pm
Ubicación: Cornella de Llobregat - Barcelona

Re: Ralentizar juego compilado (hisoft basic compiler)

Notapor Alxinho el Dom Abr 20, 2014 12:54 pm

Te respondo un poco mejor que desde el móvil era una mierda ...

Sobre el delay con el asm incrustado lo que hago es usar una variable para saber cuántos sprites ejecutando código hay en el momento y según ellos hago un delay o otro, o sea:

Código: Seleccionar todo
....
....
delay() :rem hago la llamada en cada iteracción del bucle del juego
....
....

sub delay()
 IF numsprites=1 THEN
   asm
         halt
   end asm
 END IF
 IF numsprites=3 THEN
    asm
        halt
        halt
        halt
    end asm
 END IF
end sub


Con la versión del contador se lo pongo donde lo necesito en el código de un sprite o lo que sea a ralentizar de esta manera; por ejemplo le puedes poner dos contadores y que por un lado ralentice los saltos en X o Y al moverse y por otro que la animación sea más lenta o más rápida aparte del movimiento mencionado.

Código: Seleccionar todo
dim contanimacion as UBYTE
dim contmovimiento as UBYTE

:rem En la parte de código de por ejemplo el protagonista

contanimacion=contanimacion+1
contmovimiento=contmovimiento+1
IF contanimacion=100 THEN
   contanimacion=0
  :rem hacemos la animacion
END IF
IF contmovimiento=100 THEN
   contmovimiento=0
   :rem sumamos x=x+1 o Y=Y+1 o lo que sea para desplazar el sprite
END IF


Todo esto lo he escrito de memoria sin comprobarlo si funciona pero creo que sí. Seguro que hay maneras infinitamente mejores que la peña que sabe más por aquí te podría decir, a ver si se anima que a mí también me serviría.

Un abrazo y esperamos ver algo pronto :wink:
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
Alxinho
Freddy Hardest
 
Mensajes: 896
Registrado: Mar Jun 19, 2007 11:20 am
Ubicación: Barcelona


Volver a Programación y nuevos desarrollos

¿Quién está conectado?

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