Página 2 de 37

Re: Sugerencias para la Churrera...

Publicado: Vie, 14 Feb 2014, 16:59
por alxinho
$this->bbcode_second_pass_quote('Nightwolf', 'Y')a 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

Re: Sugerencias para la Churrera...

Publicado: Sab, 15 Feb 2014, 17:31
por na_th_an
$this->bbcode_second_pass_quote('Nightwolf', 'O')tra 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).

$this->bbcode_second_pass_quote('Nightwolf', ' ')¿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.

Re: Sugerencias para la Churrera...

Publicado: Dom, 16 Feb 2014, 15:18
por Nightwolf
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.

$this->bbcode_second_pass_code('', '
// 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')

Re: Sugerencias para la Churrera...

Publicado: Dom, 16 Feb 2014, 16:02
por elborra
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í:
$this->bbcode_second_pass_code('', '// 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.

Re: Sugerencias para la Churrera...

Publicado: Dom, 16 Feb 2014, 16:25
por na_th_an
En efecto, no puedes anidar condiciones. Si necesitas algo parecido, tienes que repetir las comprobaciones en cláusulas diferentes.

Re: Sugerencias para la Churrera...

Publicado: Dom, 16 Feb 2014, 16:38
por Nightwolf
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?

Re: Sugerencias para la Churrera...

Publicado: Dom, 16 Feb 2014, 17:04
por elborra
$this->bbcode_second_pass_quote('Nightwolf', 'G')racias 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.

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Publicado: Lun, 17 Feb 2014, 13:30
por Nightwolf
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 :)

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Publicado: Lun, 17 Feb 2014, 13:42
por na_th_an
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...

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Publicado: Lun, 17 Feb 2014, 13:50
por Nightwolf
¡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?