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

Avatar de Usuario
alxinho
Mensajes: 98
Registrado: Dom, 02 Feb 2014, 12:36

Re: Sugerencias para la Churrera...

Mensajepor alxinho » Vie, 14 Feb 2014, 16:59

Nightwolf escribió:Ya te he pasado el código por PM.

Por cierto, ¿los enemigos podrían disparar? ;)


Esto me haría falta a mí también!! :D
Avatar de Usuario
na_th_an
Mensajes: 26412
Registrado: Vie, 09 Ene 2009, 12:18

Re: Sugerencias para la Churrera...

Mensajepor na_th_an » Sab, 15 Feb 2014, 17:31

Nightwolf escribió:Otra sugerencia: ¿Sería posible cambiar al vuelo valores como la coordenada del protagonista sin recargar la pantalla (¿o mejor usar warp y listo?)?


Esto se usa en el juego que estamos haciendo ahora, así que para la siguiente versión. Warp te puede servir, pero la pantalla se recargará igualmente (creo, no recuerdo exactamente como funcionaba la versión que usáis ahora).

Nightwolf escribió: ¿Y cambiar los parámetros que se asigan en config.h como gravedad, fuerza del salto, etc mediante algún comando? (Para el item mágico de las catiuscas, ¡que permite saltar más porque son de goma!)


Ahora mismo no, porque lo que hay en config.h son constantes. Puedes intentar cambiarlos por variables en el motor, pero irá más despacio y ocupará más memoria.

Los enemigos que disparan, lo mismo: en lo que estamos haciendo ahora hay, así que para la próxima versión.
Como diría Rorshach: "Urm..."
Nightwolf
Mensajes: 215
Registrado: Sab, 15 Oct 2011, 11:24

Re: Sugerencias para la Churrera...

Mensajepor Nightwolf » Dom, 16 Feb 2014, 15:18

Genial, pinta estupendo con tantas "buenas acciones" por llegar. Aunque cambiarlo directamente en el motor, de momento, me da respecto tocar nada de C (¡vete tu a saber qué armo!)

Acabo de darme cuenta de que hay algo que funciona un tanto extraño.

Tengo lo siguiente. Pues bien, lo que debe hacer en el entering screen 14,es comprobar si el flag 7 está a 0 o no para pintar unos bloques que impiden el paso. Y si no fuese 0, no debería hacer nada. El resultado no es el esperado. Independientemente del valor de flag 7, SIEMPRE pinta al entrar en la pantalla esos dos bloques. El workaround es poner inmediatamente de la condición de si flag 7 vale 0, poner otra con el valor de flag 7 superior a 0 para que pinte el fondo y no los bloques.

Código: Seleccionar todo

// PANTALLA 14 -
ENTERING SCREEN 14
   # Pintamos los bloques si no han sido volados
   IF TRUE
   THEN      
// Si aquí pusiera SET FLAG 7 = 8, da igual, la siguiente condicion se cumple siempre
      IF FLAG 7 = 0
      THEN
         SET_FIRE_ZONE 112, 48, 128, 80      
         SET TILE (12,9)= 22
         SET TILE (13,9)= 22
      END
      IF FLAG 7 > 0 // Si no pongo esta condicion, la superior se cumple siempre, aunque el flag 7 valga lo que sea
      THEN
         //SET_FIRE_ZONE 112, 48, 128, 80      
         SET TILE (12,9)= 13
         SET TILE (13,9)= 13
      END

   END
END
// CONDICIONES EN LA PANTALLA 14
PRESS_FIRE AT SCREEN 14
   IF PLAYER_HAS_ITEM 1
   IF PLAYER_TOUCHES 12, 8
   THEN
      SET ITEM 1 = 0
      SET FLAG 7 = 1
      SET TILE (13,8)= 21   
   END

   IF PLAYER_HAS_ITEM 1
   IF PLAYER_TOUCHES 13, 8
   THEN
      SET ITEM 1 = 0
      SET FLAG 7 = 1
      SET TILE (12,8)= 21   
   END

   IF PLAYER_TOUCHES 7, 5
   IF FLAG 7 = 1
   THEN
      SET FLAG 7 = 2            
      SET TILE (12,9)= 13
      SET TILE (13,9)= 13   
      SET TILE (12,8)= 13   
      SET TILE (13,8)= 13         
   END

   IF PLAYER_TOUCHES 7, 4
   IF FLAG 7 = 1
   THEN
      SET FLAG 7 = 2
      SET TILE (12,9)= 13
      SET TILE (13,9)= 13   
      SET TILE (12,8)= 13   
      SET TILE (13,8)= 13         
   END
END
//
// FIN PANTALLA 14 - LA CUEVA DONDE SE USA LA DINAMITA
Avatar de Usuario
elborra
Mensajes: 209
Registrado: Dom, 12 Ene 2014, 14:37

Re: Sugerencias para la Churrera...

Mensajepor elborra » Dom, 16 Feb 2014, 16:02

No estoy muy seguro de que el scripting aceptara condiciones anidadas (para mí que no, ya te lo confirmaran), en cualquier caso no es necesario que compruebes a la entrada de una habitación IF TRUE en tu caso ya que la condicion siempre se cumpliría y es casi lo contrario de lo que buscas.

Deja el código de ENTERING SCREEN 14 así:

Código: Seleccionar todo

// PANTALLA 14 -
ENTERING SCREEN 14
   # Pintamos los bloques si no han sido volados
   
      IF FLAG 7 = 0
      THEN
         SET_FIRE_ZONE 112, 48, 128, 80     
         SET TILE (12,9)= 22
         SET TILE (13,9)= 22
      END
END
ya si hay que tocar más dependiendo del valor del flag > 0 es cosa tuya ^^, pero si sólo quieres pintar los tiles y activar la zona en caso de ser 0 debería de bastar.
Avatar de Usuario
na_th_an
Mensajes: 26412
Registrado: Vie, 09 Ene 2009, 12:18

Re: Sugerencias para la Churrera...

Mensajepor na_th_an » Dom, 16 Feb 2014, 16:25

En efecto, no puedes anidar condiciones. Si necesitas algo parecido, tienes que repetir las comprobaciones en cláusulas diferentes.
Como diría Rorshach: "Urm..."
Nightwolf
Mensajes: 215
Registrado: Sab, 15 Oct 2011, 11:24

Re: Sugerencias para la Churrera...

Mensajepor Nightwolf » Dom, 16 Feb 2014, 16:38

Gracias a los dos. :) Nada de anidar ^^

Otra pregunta, ¿la única forma de simular recoger un objeto (que no sea de los coleccionables claro) automáticamente se puede hacer con el SET_FIRE_ZONE y luego con el IF PLAYER_TOUCHES? ¿O se podrían definir tiles que cuando chocas con ellos se lance algo del código?
Avatar de Usuario
elborra
Mensajes: 209
Registrado: Dom, 12 Ene 2014, 14:37

Re: Sugerencias para la Churrera...

Mensajepor elborra » Dom, 16 Feb 2014, 17:04

Nightwolf escribió:Gracias a los dos. :) Nada de anidar ^^

Otra pregunta, ¿la única forma de simular recoger un objeto (que no sea de los coleccionables claro) automáticamente se puede hacer con el SET_FIRE_ZONE y luego con el IF PLAYER_TOUCHES? ¿O se podrían definir tiles que cuando chocas con ellos se lance algo del código?

Exacto, aunque con set_fire_zone debería ser suficiente (si sólo hubiera una acción de disparo en la pantalla) definiendo la zona donde pongas el tile.

Por un lado tienes los comprotamientos de los tiles (lo que configuras en config.h al final) y por otro lado hay ciertos tiles que "lanzan" códigos (como sería el caso del objeto predefinido o las llaves) que se gestionan con el motor independientemente de su comportamiento, que por regla general para este tipo de tile querremos que sea de 0 = walkable; con lo que para definir que otro tile del tileset tuviese un comportamiento especial de "recogerse" o parecido habría que currarselo cambiando, como he dicho, el motor.

Si quisieras trastear aún más (tu propio código C o usar funciones de la churrera) sin tener que llegar a tocar el motor dispones de llamadas desde el script con EXTERN n que te abre un mundo de posibilidades para cosas más complejas.
Nightwolf
Mensajes: 215
Registrado: Sab, 15 Oct 2011, 11:24

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Mensajepor Nightwolf » Lun, 17 Feb 2014, 13:30

Bueno, pues cambio el título del hilo y aprovecho para ir poniendo las dudas y lo que vaya aconteciendo. :)

Mi objetivo es hacer una videoaventura. Ya en la época del CPC hice una aventura conversacional basada en la genial Aventura Original. Usando la misma base -> Adentrarse en una cueva a obtener tesoros, en este caso, ¡Bellotas de Oro! Bueno, pues adaptando un poco su historia, algún puzzle que me acuerdo, veremos qué tal queda como Videoaventura, que era lo que más me gustaba entonces. :)

El mapa base ya está creado, así como la mayoría de los gráficos (tomando como referencia base los del dogmole del tutorial, rehaciéndolos) y gran parte de los "puzzles".

Actualmente, basta con tener el objeto en el "inventario" para usarlo en el lugar correcto. Lo genial sería poder tener un selector de objeto activo (una flechita que vaya apuntando al objetivo activo). Supongo que con el C se podría lograr algo así, pero me da que debe ser bastante liosillo. Espero que al menos poder mostrar los objetos que hayas recogido en la parte inferior de la pantalla. Son cosas que dejaré para el final, una vez haya completado todos los eventos, pero agradecería algunas pistas jeje

A ver si puedo sacar una betilla pronto :)
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 » Lun, 17 Feb 2014, 13:42

Puedes usar el comando PRINT_TILE_AT (x, y) = t para poner el tile t en las coordeandas de caracter x, y. Este comando se explica en el capítulo 9. La diferencia con SET_TILE es que esta usa coordeandas de tile y modifica la pantalla de juego (comportamientos incluidos). PRINT_TILE_AT te sirve para, sencillamente, imprimir un tile en las coordenadas de caracter que quieras (0-30 para la x y 0-22 para la y). Con esto puedes imprimir los objetos en el sitio del marco que quieras, por ejemplo.

La selección de objetos y usar el seleccionado hay que añadírsela al motor. Se podría hacer de forma sencilla e integrada haciendo que el objeto seleccionado esté siempre almacenado en un flag concreto, para poder usarlo así con el scripting para hacer las comprobaciones. Si os animáis...
Como diría Rorshach: "Urm..."
Nightwolf
Mensajes: 215
Registrado: Sab, 15 Oct 2011, 11:24

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Mensajepor Nightwolf » Lun, 17 Feb 2014, 13:50

¡Rechachi con el PRINT_TILE_AT ! :)

Supongo que sería algo así:

Un flag determinado se incrementa con la pulsación de una tecla, recorre los items que pueda tener el jugador, y dependiendo cual sea, muestra ese sprite (o lo ilumina quizás mejor que con la flecha y es un sprite menos)

Otra sugerencia, ¿poder saber el tile en el que se encuentra el jugador?

Volver a “La Churrera”

¿Quién está conectado?

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