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

Avatar de Usuario
na_th_an
Mensajes: 26413
Registrado: Vie, 09 Ene 2009, 12:18

Re: Terminare mi juego churrero? ;)

Mensajepor na_th_an » Vie, 16 Oct 2015, 13:48

$this->bbcode_second_pass_code('', '#define MOVED_TILE_FLAG 1
#define MOVED_X_FLAG 2
#define MOVED_Y_FLAG 3')

Puedes elegir los números que quieras, no tienen por qué ser estos. Cambia 1, 2 y 3 por otros que tengas libres.
Como diría Rorshach: "Urm..."
fupinet
Mensajes: 112
Registrado: Vie, 05 Jun 2015, 12:55

Re: Terminare mi juego churrero? ;)

Mensajepor fupinet » Vie, 16 Oct 2015, 14:27

ah vale! si ! pero si tengo 2 tiles movibles no me vale no?
es decir como yo lo tenia pensado era un IF si es igual al tile 14 o 15 por ejemplo

Tengo 2 tiles movibles y dependiendo cual mueva en el sitio ocurre una cosa o otra
Avatar de Usuario
na_th_an
Mensajes: 26413
Registrado: Vie, 09 Ene 2009, 12:18

Re: Terminare mi juego churrero? ;)

Mensajepor na_th_an » Dom, 18 Oct 2015, 00:40

El único tile que se puede empujar es el 14, eso es una limitación del motor.

Ahora bien, puedes poner el tile 14 todas las veces que quieras en la pantalla.

Cada vez que empujes un tile de los que hay, el que sea, se grabaran en los flags la posición de destino y el tile sobrescrito. Si lo activas, además se generará una pulsación de la tecla de acción, con lo que se lanzará el PRESS_FIRE AT ANY y el PRESS_FIRE AT SCREEN n de la pantalla actual.

Así puedes saber si se pisado la casilla (x, y) o si se ha pisado una casilla que contenía un tile en concreto.

No es posible saber "qué" tile de los que hay en pantalla has movido. Esto fue programado para Cadaverion, y en ese juego lo importante era adónde se movían los tiles, no cuáles de ellos en concreto se movían.

Si no te he entendido mal, lo que quieres hacer no es posible ya de entrada porque sólo se puede empujar el tile 14.

Con un poco de maña se podría ampliar el motor para prepararlo para algo parecido a lo que necesitas, la cosa es que no tengo tiempo para dedicarme a hacer algo así (habría que cambiar algunas partes del motor principal para que se pudiese empujar cualquier tile de tipo "n", y posteriormente habría que crear otra directiva que definiese un flag que guardase el tipod el tile que se empuja). Me lo pensaré a ver si puede ser, pero ahora mismo ya estoy metido en más de lo que puedo abarcar.
Como diría Rorshach: "Urm..."
fupinet
Mensajes: 112
Registrado: Vie, 05 Jun 2015, 12:55

Re: Terminare mi juego churrero? ;)

Mensajepor fupinet » Dom, 18 Oct 2015, 23:25

Ok no te preocupes!!! me apaño con eso.
Esta pregunta creo que es sencilla...como puedo poner que el tile 16 en vez de aumentar 1 de vida quite -1
he estado mirandolo pero no lo consigo...
Muchas 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 » Lun, 19 Oct 2015, 08:44

¿Te refieres al tile 16 por si mismo colocado en el mapa, o a un hotspot de tipo 1 (recarga de vida, que se pinta con el tile 16)?

En el primer caso habría que añadir código para detectar que el jugador toca ese tile y actuar en consecuencia. En el segundo caso, tendrás que hacer cambios sencillos en varios sitios (la parte de los hotspots es un puto pifostio en la Churrera, horrible, así que como no sé tu configuración mejor cambias en todos los sitios).

En mainloop.h, busca estructuras como esta:

$this->bbcode_second_pass_code('', 'player.life += PLAYER_REFILL;
if (player.life > PLAYER_LIFE)
player.life = PLAYER_LIFE;')

Y cámbialo por esta resta (segura):

$this->bbcode_second_pass_code('', 'if (player.life > PLAYER_REFILL)
player.life -= PLAYER_REFILL;
else
player.life = 0;')

Si tu "PLAYER_REFILL" vale 1, puedes optimizar levemente y usar esto:

$this->bbcode_second_pass_code('', 'if (player.life) player.life --;')
Como diría Rorshach: "Urm..."
fupinet
Mensajes: 112
Registrado: Vie, 05 Jun 2015, 12:55

Re: Terminare mi juego churrero? ;)

Mensajepor fupinet » Lun, 19 Oct 2015, 14:19

Ok perfecto MUCHAAAAS GRACIAS!
los hotspot tipo 1 esta limitado a 1 por pantalla no?
por cierto tengo ganas de ver lo nuevo de los que estais trabajando!
Un saludo.
Avatar de Usuario
na_th_an
Mensajes: 26413
Registrado: Vie, 09 Ene 2009, 12:18

Re: Terminare mi juego churrero? ;)

Mensajepor na_th_an » Lun, 19 Oct 2015, 14:34

Sí, solo hay un hotspot por pantalla. Por eso en MK2 metimos los floating objects y poco a poco vamos haciendo toda la funcionalidad con ellos (aunque aún están muy verdes).
Como diría Rorshach: "Urm..."
fupinet
Mensajes: 112
Registrado: Vie, 05 Jun 2015, 12:55

Re: Terminare mi juego churrero? ;)

Mensajepor fupinet » Vie, 23 Oct 2015, 23:32

Buenas!!! llevo un rato peleandome con los tiles animados....
lo he activado en config.h le he puesto el numero 46 y tengo una animacion en el tile 46 y 47..
pero no sale ...si la dibujo por script si sale pero no me hace la animacion.
he buscado por el foro y he leido que aunque tengo 48 tiles solo se usan 16 con el mapa y el resto es script..tengo que hacerlocon 48 tiles..como cambio eso o que tengo que hacer para que funcione...se que hace tiempo de esto y no se como quedo..

Buscaria mas info por el foro pero de momento me carga muy lento y no se si es mi internet o el foro...

otra duda mas sobre los tile empujables, he visto en el archivo whatsnew que los bloques puede detener la trayectoria de los enemigos...pero no veo donde explica como hacer eso. Hay que activar una opcion?


Un saludo y muchas 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 » Sab, 24 Oct 2015, 16:55

Acabo de mirar el código. No te funciona porque el módulo de los tiles animados no está integrado con el script. El código generado por SET TILE no hace las llamadas necesarias al módulo de tiles animados.

Te adjunto un msc.exe que acabo de ampliar para que genere el código correcto, pero no lo puedo probar. Dime qué tal te va. Sustituye tu msc.exe de /script por el contenido del ZIP
script.zip
(38.15 KiB) Descargado 527 veces


De todos modos el efecto es un poco mojón, la verdad.

Sobre lo otro, lo tienes en el capítulo 7 del tutorial. La directiva es WALLS_STOP_ENEMIES, solo tienes que descomentarla si está comentada y los tiles obstáculo modificarán las trayectorias de los enemigos (sean empujables o no, si pones una pared en medio de la trayectoria de un enemigo éste cambiará de dirección al legar a la pared). :)
Como diría Rorshach: "Urm..."
fupinet
Mensajes: 112
Registrado: Vie, 05 Jun 2015, 12:55

Re: Terminare mi juego churrero? ;)

Mensajepor fupinet » Sab, 24 Oct 2015, 17:47

Casi!!!! me sale este error al compilar

sccz80:"tilanim.h" L:16 Warning:#4:Function returns different type to prototype
sccz80:"tilanim.h" L:16 Warning:#5:Prototype is signed int fn
sccz80:"tilanim.h" L:16 Warning:#6:Function is void fn

En el juego sale bien la animacion...lo que pasa que salen todas las screen no solo en la que la pongo
esto es lo que tengo en script...
ENTERING SCREEN 30
IF TRUE
THEN
SET TILE (1, 8) = 46
END
END

Volver a “La Churrera”

¿Quién está conectado?

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