Terminare mi juego churrero? ;)

For all things Churrera. ¿Estás haciendo un juego? ¿quieres proponer un cambio? ¿tienes alguna duda? ¡Cuéntanoslo!

Moderador: na_th_an

fupinet
Mensajes: 112
Registrado: Vie, 05 Jun 2015, 12:55

Re: Terminare mi juego churrero? ;)

Mensajepor fupinet » Mar, 23 Jun 2015, 12:10

:porro: ya empiezo con las dudas.....

He visto en algunos juegos de mojontwins que el personaje tiene un efecto de sonido al andar..
Llevo un rato mirando el codigo y no doy con el sonido ya que el archivo beeper.h salen los mismo sonidos de siempre.
He buscando por engine.h y no veo nada que me identifique ese sonido.
Donde esta??? xD

Un saludo y gracias.
Avatar de Usuario
na_th_an
Mensajes: 26413
Registrado: Vie, 09 Ene 2009, 12:18

Re: Terminare mi juego churrero? ;)

Mensajepor na_th_an » Mar, 23 Jun 2015, 13:57

Se activa con PLAYER_STEP_SOUND (o algo así :lol: ) en config.h

El código que lo genera está en engine.h y es este:

$this->bbcode_second_pass_code('', '#ifdef PLAYER_STEP_SOUND
void step (void) {
#asm
ld a, 16
out (254), a
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor 16
out (254), a
#endasm
}
#endif')
Como diría Rorshach: "Urm..."
fupinet
Mensajes: 112
Registrado: Vie, 05 Jun 2015, 12:55

Re: Terminare mi juego churrero? ;)

Mensajepor fupinet » Jue, 25 Jun 2015, 12:28

Bueno buenooooo ya estoy en la recta final.
Tengo un error que no se si es que no se puede o la estoy liando parda....
al matar un numero de enemigos quiero que el personaje se traslade automaticamente a una pantalla del juego.
He puesto este codigo:
ENTERING ANY
IF ENEMIES_KILLED_EQUALS 3
THEN
WARP_TO 23, 2, 8
END
END
y cuando mato los 3 enemigos se me para....se me bloquea todo..
Es posible hacer eso?
Un saludo y gracias!! :cafe:
fupinet
Mensajes: 112
Registrado: Vie, 05 Jun 2015, 12:55

Re: Terminare mi juego churrero? ;)

Mensajepor fupinet » Jue, 25 Jun 2015, 12:50

me he dado cuenta que el abort y el pause tambien ha dejado de funcionar...se me bloquea..es posible que este falta de memoria y que por eso no ejecuta esas aciones?
Avatar de Usuario
na_th_an
Mensajes: 26413
Registrado: Vie, 09 Ene 2009, 12:18

Re: Terminare mi juego churrero? ;)

Mensajepor na_th_an » Jue, 25 Jun 2015, 13:02

$this->bbcode_second_pass_quote('fupinet', 'B')ueno buenooooo ya estoy en la recta final.
Tengo un error que no se si es que no se puede o la estoy liando parda....
al matar un numero de enemigos quiero que el personaje se traslade automaticamente a una pantalla del juego.
He puesto este codigo:
ENTERING ANY
IF ENEMIES_KILLED_EQUALS 3
THEN
WARP_TO 23, 2, 8
END
END
y cuando mato los 3 enemigos se me para....se me bloquea todo..
Es posible hacer eso?
Un saludo y gracias!! :cafe:


Claro que se te bloquea :D Piénsalo, es "ENTERING ANY". Se ejecuta al entrar en CUALQUIER PANTALLA.

Cuando entras en una pantalla con 3 enemigos matados, se ejecuta WARP_TO 23, 2, 8... Y al moverte a esa pantalla estás entrando en una pantalla, con lo que se vuelve a ejecutar... Y otra, y otra, y otra vez.

Has creado un bucle infinito.

Puedes deshacerlo utilizando un flag que tengas por ahí libre, por ejemplo digamos que el 10. Al empezar el juego la inicializas en tu ENTERING GAME:

$this->bbcode_second_pass_code('', 'ENTERING GAME
IF TRUE
THEN
SET FLAG 10 = 0
# y otras cosas que tengas...
...
END
...
END')

Y luego modificas tu tiesto así:

$this->bbcode_second_pass_code('', 'ENTERING ANY
IF ENEMIES_KILLED_EQUALS 3
IF FLAG 10 = 0
THEN
SET FLAG 10 = 1
WARP_TO 23, 2, 8
END
END')

Lo que pasa es que no se te va a ejecutar hasta que no entres en una pantalla nueva. Ahora mismo no sé si la Churrera lanzaba PRESS_FIRE al matar a un enemigo. Si lo hiciera, lo suyo sería:

$this->bbcode_second_pass_code('', 'PRESS_FIRE AT ANY
IF ENEMIES_KILLED_EQUALS 3
IF FLAG 10 = 0
THEN
SET FLAG 10 = 1
WARP_TO 23, 2, 8
END
END')

Pero no sé si lo hace. MK2 sí lo hace (aunque lanza una sección especial, pero eso es otra historia). ¿Cómo se matan los enemigos en tu juego? ¿disparos o pisotones? Para mirarlo y, si no está hecho, decirte la modificación.

Es que lo suyo es que el script salte al matar al último enemigo, y no tener que entrar en una pantalla nueva.
Como diría Rorshach: "Urm..."