Proyecto Churrero: AVORCHA - Pentacorn Quest 128K- RELEASED!

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

Moderador: na_th_an

Nightwolf
Mensajes: 215
Registrado: Sab, 15 Oct 2011, 11:24

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Mensajepor Nightwolf » Mié, 19 Feb 2014, 11:59

A ver si podéis echarme un cable :)

Quisiera hacer en una pantalla específica, que cada X segundos, un flag se incremente en 1, y dependiendo del valor de la flag, se pinte un tile. Luego el timer se reinicia y vuelta a empezar.

Vale, esa es la idea, ¿Pero cómo poner en marcha ésto?

Pues no sé muy bien cómo usar el TIMER. Porque parece más bien que es un uso global, y además de definirlo hay que definir un gráfico para la recarga del tiempo (cuando no debería ser requerido si solo se usa a modo interno para eventos :S con lo que encima perdería un tilecillo)

¿Alguna ayudita para alguien que lo haya usado? :tits:
Avatar de Usuario
na_th_an
Mensajes: 26412
Registrado: Vie, 09 Ene 2009, 12:18

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Mensajepor na_th_an » Mié, 19 Feb 2014, 12:22

Lamentablemente la recarga no la vas a poder desactivar... Pero no pierdes un tile. Puedes usar ese tile para lo que quieras, con tal de que no coloques ningún hotspot de tipo 5 en el colocador.

Para hacer lo que quieres, lo suyo es empezar el juego con el timer apagado y configurarlo para que se controle desde script. En config.h:

Código: Seleccionar todo

#define TIMER_ENABLE               // Enable timer
#define TIMER_INITIAL      99         // For unscripted games, initial value.
#define TIMER_REFILL      30         // Timer refill, using tile 21 (hotspot #5)
#define TIMER_LAPSE       32         // # of frames between decrements
//#define TIMER_START               // If defined, start timer from the beginning
#define TIMER_SCRIPT_0            // If defined, timer = 0 runs "ON_TIMER_OFF" in the script
//#define TIMER_GAMEOVER_0            // If defined, timer = 0 causes "game over"
//#define TIMER_KILL_0               // If defined, timer = 0 causes "one life less".
//#define TIMER_WARP_TO 0            // If defined, warp to screen X after "one life less".
//#define TIMER_WARP_TO_X    1         //
//#define TIMER_WARP_TO_Y    1         // "warp to" coordinates.
//#define TIMER_AUTO_RESET            // If defined, timer resets after "one life less"
//#define SHOW_TIMER_OVER            // If defined, "TIME OVER" shows when time is up.


Una vez hecho esto, el timer estará incluido en el motor pero no funcionará hasta que nosotros lo iniciemos desde el script. Puedes poner esto en ENTERING:

Código: Seleccionar todo

ENTERING ANY
    IF TRUE
    THEN
        TIMER OFF
    END
END

ENTERING SCREEN n
    IF TRUE
    THEN
        SET_TIMER 1, 32
        TIMER ON
    END
END

ON_TIMER_OFF
    IF TRUE
    THEN
        # Incrementar cosas
        INC FLAG 10, 1
        # Reiniciamos timer
        SET TIMER 1, 32
    END

    # mas comprobaciones
    IF FLAG 10 = 1
    THEN
         # patata
    END

    IF FLAG 10 = 2
    THEN
         # pistacho
    END

    IF FLAG 10 = 3
    THEN
         # tres, veinte duros
    END

    # etcétera
END


Esto debería funcionar. Lo que ocurre es que en cada pantalla, por defecto, se apaga el timer (ENTERING ANY se ejecuta antes). En la pantalla "n" (pon la que sea en tu juego), se pone el temporizador con el valor 1 y un retardo de 32 frames (ajusta al gusto) y se activa (ENTERING SCREEN n se ejecuta después).

Cuando el temporizador llegue a 0, hemos configurado el engine para que se ejecute la sección ON_TIMER_OFF del script. En este caso, se incrementa el flag 10 (por ejemplo), y al final se vuelve a reiniciar el temporizador a 1. Luego hay comprobaciones para hacer cosas dependiendo del valor del flag 10.

El temporizador no está diseñado para hacer este tipo de cosas, pero debería funcionar. De hecho, si funciona, es que los Mojon Twins somos la polla en vinagre :lol:
Como diría Rorshach: "Urm..."
Nightwolf
Mensajes: 215
Registrado: Sab, 15 Oct 2011, 11:24

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Mensajepor Nightwolf » Mié, 19 Feb 2014, 12:29

Jeje, funcione o no, sois las polla en vinagre saladita :P

Comento luego el resultado a ver si resulta, que tiene muy buena pinta jejeje :-) Qué guay, ¡voy a poder hacer una perrería muy buena!
Avatar de Usuario
na_th_an
Mensajes: 26412
Registrado: Vie, 09 Ene 2009, 12:18

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Mensajepor na_th_an » Mié, 19 Feb 2014, 12:30

En realidad lo que mola de la Churrera es que te pones a enredar y se pueden hacer cosas que ni imaginábamos cuando diseñamos las cosas :lol: Nos pasa continuamente.
Como diría Rorshach: "Urm..."
Nightwolf
Mensajes: 215
Registrado: Sab, 15 Oct 2011, 11:24

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Mensajepor Nightwolf » Mié, 19 Feb 2014, 12:41

Desde luego. :)

Puede parecer que solo es un motor de plataformas, pero con el tema del script, sólo con eso, sin llegar a tocar ya C, es increíble lo flexible por las cosicas que pueden salir. (Ahora mismo esta videoaventura, pero ya tengo pensado lo menos dos juegos más) Lo único que hecho en falta en realidad, es una mayor variedad de enemigos. Veo más que suficiente que haya 3 diferentes en una pantallica, pero molaría muy mucho que pudieran ser más variados. O poderlos cambiar (en plan, para pantalla 0,14,18 tal tiles de enemigos, para la 7,9,12 otra, etc)

Claro que también se podría usar haciendo un apaño, con los 48 tiles de fondo, pegando alguna animación... Mmmmm ¡hay muchas posibilidades! :) (Por ejemplo como enemigo la típica gota asesina mortal del Profanation, o la fecha que sale de una pared)

Por cierto, otra cosilla para sugerir:

¿Sería complicado hacer efectos de pantalla tipo terremoto? (agitar toda la zona de juego izquierda o derecha varios pixeles) ¿así como efectos de transición como la entrada que hay actualmente en juego?
Última edición por Nightwolf el Mié, 19 Feb 2014, 12:46, editado 1 vez en total.
Avatar de Usuario
na_th_an
Mensajes: 26412
Registrado: Vie, 09 Ene 2009, 12:18

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Mensajepor na_th_an » Mié, 19 Feb 2014, 12:46

El problema es que los gráficos de los enemigos ocupan muchísimo. Pero ahora mismo puedes hacer lo que quieres hacer. Sólo tienes que generar varios sets de sprites, y tenerlos comprimidos. Luego, usando el comando EXTERN, añades código para descomprimirlos. Si realmente te interesa te puedo explicar cómo hacerlo, pero es algo muy parecido a lo que le expliqué a el_borra sobre los tiles aquí: viewtopic.php?f=9&t=1508&start=20
Como diría Rorshach: "Urm..."
Nightwolf
Mensajes: 215
Registrado: Sab, 15 Oct 2011, 11:24

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Mensajepor Nightwolf » Mié, 19 Feb 2014, 12:49

Mmm mare mía, si he entendido bien, sería posible por ejemplo, ¿hacer que el sprite protagonista cambie cuando coja una pistola por ejemplo? Bueno, de momento para éste juego no quiero complicarlo más, pero lo apunto para el siguiente!!!
Avatar de Usuario
na_th_an
Mensajes: 26412
Registrado: Vie, 09 Ene 2009, 12:18

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Mensajepor na_th_an » Mié, 19 Feb 2014, 13:27

Como poderse, se puede hacer. Pero lo que no se puede hacer (sin modificar) es que al principio no pueda disparar y luego sí. Aunque lograr eso también requiere una modificación realmente sencilla.
Como diría Rorshach: "Urm..."
Nightwolf
Mensajes: 215
Registrado: Sab, 15 Oct 2011, 11:24

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Mensajepor Nightwolf » Jue, 20 Feb 2014, 20:37

Vaya, acabo de probarlo y no funciona :S La prueba era muy sencilla, cuando salta el tiempo, debería sacar el final del juego, pero no ejecuta esa condición. ¿Las condiciones ENTERING SCREEN Y ON_TIMER_OFF requieren estar en algún orden?

Lo que de momento hago es, primero ENTERING SCREEN 0, y luego su PRESS FIRE AT SCREEN 0 y luego su siguiente.

De la prueba:

Código: Seleccionar todo

ENTERING SCREEN 15
    IF TRUE
    THEN
        SET_TIMER 1, 32
        TIMER ON
   END
END


ON_TIMER_OFF
    IF TRUE
    THEN       
        INC FLAG 11, 1   
        SET TIMER 1, 32
    END

    # mas comprobaciones
    IF FLAG 11 = 1
    THEN
      SET TILE(1,9) = 10
      WIN GAME
    END
END


El ENTERING_ANY lo he puesto justo después de la condición de inicio:


Código: Seleccionar todo

ENTERING GAME
   IF TRUE
   THEN
      SET FLAG 1 = 0
      SET FLAG 3 = 0
      SET FLAG 11 = 0
      WARP_TO 15,7,5
   END
END

ENTERING ANY
    IF TRUE
    THEN
        TIMER OFF
    END
END


He puesto en el marcador el contador del tiempo, se queda clavado en 0100, parece que no se inicia.
Avatar de Usuario
na_th_an
Mensajes: 26412
Registrado: Vie, 09 Ene 2009, 12:18

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Mensajepor na_th_an » Jue, 20 Feb 2014, 21:24

Déjame que le eche un vistazo al motor y te digo lo que sea. Es posible que se trate de un glitch fácilmente solucionable.

Enviado desde mi LT18i usando Tapatalk 2
Como diría Rorshach: "Urm..."

Volver a “La Churrera”

¿Quién está conectado?

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