Problemas y dudas sobre mi primero 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
Alessandro
Mensajes: 32
Registrado: Vie, 28 Feb 2014, 15:13
Ubicación: Messina, Italia
Contactar:

Problemas y dudas sobre mi primero juego churrero

Mensajepor Alessandro » Dom, 02 Mar 2014, 14:16

Hola a todos,

en estos días estoy trabajando a mi primero juego elaborado con la Churrera, un título de plataformas con vista lateral, y tengo algunos problemas y dudas:

- Corrupción gráfica

Dos tiles presentan corrupción gráfica ya al comenzar del juego, aunque esta no se puede ver en Mappy, ni en la colocación de los enemigos. Acá hay el conjunto de las tiles por Mappy (en PNG y ampliado para una mejor visualización; los tiles afectados por la corrupción son el tercero y el sexto a comenzar de la derecha):

Imagen

y esto es el resultado:

Imagen

Los tiles corruptas son ambos de tipo 8.

- Habilitar la posibilidad de matar los enemigos con el salto

La idea sería que el personaje protagonista debería eliminar a los enemigos después haber colectado un cierto objecto. Si la opción #define PLAYER_KILLS_ENEMIES está habilitada, el personaje mata a los enemigos desde el inicio. ¿Que debeo hacer para habilitar esta posibilidad solamente cuando él colecta el objecto?

Supongo que debería intervenir en el script, pero no he entendido como hacerlo.

- Eliminar/reemplazar la música inicial

Como se puede eliminar la música inicial, o reemplazarla con otra, especialmente ¿en modo 128K? He leído en este foro que la música para el 128K está componida con WYZ tracker, pero no he entendido ni como utilizarlo, ni como exportar la composición para el uso con los juegos de la Churrera (soy acostumbrado al Sound Tracker).

Y si utilizaría Beepola, en cual manera necesito de exportar el codigo para utilizarlo en mi proyecto?

- Asemblar el código a un otro adreso

¿Hay problemas si asemblo el código al adreso 30000 en lugar de 25000, probado que no llega hasta 65535? (El problema de corrupción gráfica se manifesta también si lo asemblo a 25000).


Si podrían ser utiles, acá hay ficheros de configuración, los tiles, el mapa etc.:

http://www.alessandrogrussu.it/bak/ficheros-1.zip


Gracias a todos por ayuda y sugerencias.
Avatar de Usuario
alxinho
Mensajes: 98
Registrado: Dom, 02 Feb 2014, 12:36

Re: Problemas y dudas sobre mi primero juego churrero

Mensajepor alxinho » Dom, 02 Mar 2014, 14:36

Hola Alessandro, no veas qué pintaza tienen tus gráficos! :o

Ánimo con el proyecto! :ymca:
renegade
Mensajes: 63
Registrado: Sab, 15 Feb 2014, 19:13

Re: Problemas y dudas sobre mi primero juego churrero

Mensajepor renegade » Dom, 02 Mar 2014, 15:29

Muy buena pinta,si señor ;)
Avatar de Usuario
na_th_an
Mensajes: 26412
Registrado: Vie, 09 Ene 2009, 12:18

Re: Problemas y dudas sobre mi primero juego churrero

Mensajepor na_th_an » Dom, 02 Mar 2014, 15:56

Ante todo, ¡bienvenido! Te respondo entre lineas.

Alessandro escribió:Hola a todos,

en estos días estoy trabajando a mi primero juego elaborado con la Churrera, un título de plataformas con vista lateral, y tengo algunos problemas y dudas:

- Corrupción gráfica

Dos tiles presentan corrupción gráfica ya al comenzar del juego, aunque esta no se puede ver en Mappy, ni en la colocación de los enemigos. Acá hay el conjunto de las tiles por Mappy (en PNG y ampliado para una mejor visualización; los tiles afectados por la corrupción son el tercero y el sexto a comenzar de la derecha):

Imagen

y esto es el resultado:

Imagen

Los tiles corruptas son ambos de tipo 8.


Esto siempre tiene que ver con la importación/conversión de png a formato Spectrum. Es probable que algunos de los colores que utilizas no sean bien detectados por SevenuP a la hora de importar. Creo que si te fijas bien podrás ver la corrupción ya en la pantalla de SevenuP. Para solucionarlo, utiliza colores más sencillos de detectar.

Tras muchos años, he comprobado que si utilizas valores R, G o B de 200 para colores sin brillo y de 255 para colores con brillo, casi todos los programas de conversión funcionan mejor. Con un pequeño arreglo en ese PNG deberías dejar de tener este problema.

Alessandro escribió:- Habilitar la posibilidad de matar los enemigos con el salto

La idea sería que el personaje protagonista debería eliminar a los enemigos después haber colectado un cierto objecto. Si la opción #define PLAYER_KILLS_ENEMIES está habilitada, el personaje mata a los enemigos desde el inicio. ¿Que debeo hacer para habilitar esta posibilidad solamente cuando él colecta el objecto?

Supongo que debería intervenir en el script, pero no he entendido como hacerlo.


Esto no puede hacerse ahora mismo, pero es algo que tengo en mente añadir al engine desde siempre. Si esperas a mañana, lo introduciré en el motor y podrás añadirlo a tu juego. Es una modificación muy sencilla y no debería tener ningún problema en añadirla :)

Alessandro escribió:- Eliminar/reemplazar la música inicial

Como se puede eliminar la música inicial, o reemplazarla con otra, especialmente ¿en modo 128K? He leído en este foro que la música para el 128K está componida con WYZ tracker, pero no he entendido ni como utilizarlo, ni como exportar la composición para el uso con los juegos de la Churrera (soy acostumbrado al Sound Tracker).

Y si utilizaría Beepola, en cual manera necesito de exportar el codigo para utilizarlo en mi proyecto?


Si quieres usar música AY necesitas activar el modo 128K, ya que en modo 48K no cabría el player y la música y todo lo demás. En modo 128K la música va en una página de RAM extra. Si decides hacerlo así, en este hilo explico como activar el modo de 128K e importar la música:

viewtopic.php?p=49060#p49060

Si prefieres quedarte en el modo de 48K, se puede cambiar la música muy fácilmente si usas beepola y el Phaser Engine. Si exportas en .ASM desde Beepola una canción que utilice Phaser Engine y comparas el archivo obtenido con music.h verás que es muy sencillo sustituir la canción que viene por defecto por otra nueva. Tengo pendiente de explicar esto en el tutorial, pero es un proceso muy sencillo.

Alessandro escribió:- Asemblar el código a un otro adreso

¿Hay problemas si asemblo el código al adreso 30000 en lugar de 25000, probado que no llega hasta 65535? (El problema de corrupción gráfica se manifesta también si lo asemblo a 25000).


Si podrían ser utiles, acá hay ficheros de configuración, los tiles, el mapa etc.:

http://www.alessandrogrussu.it/bak/ficheros-1.zip

Gracias a todos por ayuda y sugerencias.


No hay ningún problema en compilar el código a cualquier otra dirección que te venga bien, siempre que el binario no sobrepase la dirección 60655, que es donde empiezan las estructuras de splib2 para controlar los gráficos, pero perderás mucho sitio. Las últimas versiones de la Churrera vienen preparadas para compilar de fábrica en 24200 por este motivo (con lo que tu juego puede ocupar hasta 36455 bytes). De todos modos, como te digo, la corrupción no tiene nada que ver con el motor, sino con una mala importación de los gráficos.

Mucho ánimo. Si necesitas ayuda en cualquier otra cosa, no tienes más que pedirla. And if you find it more comfortable if we speak in English, you are welcome!
Como diría Rorshach: "Urm..."
Avatar de Usuario
Alessandro
Mensajes: 32
Registrado: Vie, 28 Feb 2014, 15:13
Ubicación: Messina, Italia
Contactar:

Re: Problemas y dudas sobre mi primero juego churrero

Mensajepor Alessandro » Dom, 02 Mar 2014, 17:58

Gracias a todos por las palabras de estímulo y a Nathan las preciosas sugerencias :D Efectivamente no me dí cuenta que los tiles estaban ya mal importados en Seven Up :oops: Entonces los he corrigidos, grabados como PNG de nuevo, reimportardos y salvados como tileset.h y el problema fue solucionado :corchoneta:
na_th_an escribió:Esto no puede hacerse ahora mismo, pero es algo que tengo en mente añadir al engine desde siempre. Si esperas a mañana, lo introduciré en el motor y podrás añadirlo a tu juego. Es una modificación muy sencilla y no debería tener ningún problema en añadirla :)

Claro que puedo esperar :) Si podés ayudarme con uno script que me permitiría de implementar esta característica en el juego, sería cosa muy buena, y causa de una mención en los agradecimientos en el manual cuando el proyecto será finalizado ;)

A propósito, el "güego" es parte de un diseño más amplio, un título que se compone de diferentes capítulos realizados con el auxilio de varias herramientas, entre estas la Churrera. Más informaciones próximamente ;)

na_th_an escribió:Mucho ánimo. Si necesitas ayuda en cualquier otra cosa, no tienes más que pedirla. And if you find it more comfortable if we speak in English, you are welcome!

¡Gracias! Pero deseo también aprovechar este foro para ejercitar y mejorar mi conocencia de vuestro idioma :-)
Avatar de Usuario
na_th_an
Mensajes: 26412
Registrado: Vie, 09 Ene 2009, 12:18

Re: Problemas y dudas sobre mi primero juego churrero

Mensajepor na_th_an » Lun, 03 Mar 2014, 09:07

Veamos, he realizado el cambio pero no lo puedo probar, así que serás mi conejillo de indias :) Antes de subir la nueva versión, vamos a probar qué tal va.

He actualizado sólo el archivo engine.h, que dejo como adjunto en este mensaje. Tienes que sustituir tu engine.h por este que dejo aquí. Ten en cuenta que las modificaciones siempre se hacen sobre la versión más reciente de la Churrera, que es la 3.99.3c. Si tienes otra versión más antigua puede que haya algo que no funcione bien, así que asegúrate de aplicar el cambio sobre la versión más moderna.

Para que funcione, tenemos que añadir una definición más a config.h. Puedes ponerla donde quieras, pero por orden colócala justo debajo de #define PLAYER_KILLS_ENEMIES:

Código: Seleccionar todo

#define PLAYER_CAN_KILL_FLAG   1      // If defined, player can only kill when flag # is "1"


El jugador podrá matar o no a los enemigos según el valor de una flag, que tendrás que definir en esta directiva. Según esta flag valga 1 o 0, el jugador podrá matar o no a los enemigos si salta sobre ellos. ¡Ojo! Para que funcione, debe estar activada también PLAYER_KILLS_ENEMIES.

Por ejemplo, imaginemos que decides que el flag que controle este comportamiento es el flag 5. Primero definiríamos esto en config.h:

Código: Seleccionar todo

#define PLAYER_CAN_KILL_FLAG   5      // If defined, player can only kill when flag # is "1"


Luego, en el script, nos aseguraríamos de que ese flag vale 0 al principio del juego (o 1, si queremos que se pueda matar a los enemigos desde el principio):

Código: Seleccionar todo

ENTERING GAME
    IF TRUE
    THEN
        SET FLAG 5 = 0
    END
END


Imagina que queremos que el jugador pueda empezar a pisar a los enemigos cuando coja un objeto representado por el tile 24 y situado en la pantalla 6, posición (7, 5). Podríamos hacer algo parecido a esto:

Código: Seleccionar todo

ENTERING SCREEN 6
    # Si no hemos cogido el objeto lo dibujamos
    IF FLAG 5 = 0
    THEN
        SET TILE (7, 5) = 24
    END
END

PRESS_FIRE AT SCREEN 6
    # Si pulsamos ACCION sobre el objeto...
    IF FLAG 5 = 0
    IF PLAYER_TOUCHES 7, 5
    THEN
        # Lo borramos de la pantalla
        SET TILE (7, 5) = 0
        # Activamos la habilidad de matar enemigos
        SET FLAG 5 = 1
    END
END


El cambio ha sido realmente sencillo, debería funcionar sin ningún problema. ¿probamos? :)
Adjuntos
engine.h.zip
(11.11 KiB) Descargado 124 veces
Como diría Rorshach: "Urm..."
Avatar de Usuario
Alessandro
Mensajes: 32
Registrado: Vie, 28 Feb 2014, 15:13
Ubicación: Messina, Italia
Contactar:

Re: Problemas y dudas sobre mi primero juego churrero

Mensajepor Alessandro » Lun, 03 Mar 2014, 13:41

na_th_an escribió:Veamos, he realizado el cambio pero no lo puedo probar, así que serás mi conejillo de indias :)

Con mucho gusto :D

na_th_an escribió:Ten en cuenta que las modificaciones siempre se hacen sobre la versión más reciente de la Churrera, que es la 3.99.3c. Si tienes otra versión más antigua puede que haya algo que no funcione bien, así que asegúrate de aplicar el cambio sobre la versión más moderna.

Desgraciadamente no encontré el enlace para descargar la 3.99.3c, porqué desde la página de la Churrera se puede sólo descargar la 3.99.3b. Mientras tanto lo hagaré con esta ultima.

na_th_an escribió:El cambio ha sido realmente sencillo, debería funcionar sin ningún problema. ¿probamos? :)

Por cierto ;) ... ¡¡¡Ayyyy!! ¡¡Funciona!! ¡MACANUDO! :corchoneta: :wan: :porro: Gracias infinitas :adore:

Ahora, dos otras preguntitas... por favoooooor :mrgreen:

1. No hay más un sonido cuando se recoge el objecto. ¿Como puedo habilitar eso?

2. Esta es la pantalla inicial del güego. Podés ver que el protagonista, en la esquina bajo a la derecha, se volve hacia la pared, lo que me parece algo tonto. ¿Como se puede iniciar con él volvido a la izquierda?

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

Re: Problemas y dudas sobre mi primero juego churrero

Mensajepor na_th_an » Lun, 03 Mar 2014, 13:48

Tienes razón sobre la 3.99.3c :oops: aún no la he subido porque está en pruebas. De todos modos, no cambia para nada lo que tú tienes que modificar. En un par de días la subiré con los cambios que hemos hecho para tí :)

Contesto de nuevo entre lineas :)

Alessandro escribió:1. No hay más un sonido cuando se recoge el objecto. ¿Como puedo habilitar eso?


Los objetos normales, los que se colocan como hotspot 1 en el colocador, tienen un sonido estándar. Si te refieres a los sonidos "especiales", los que se cogen desde script, tienes que hacerlos sonar tú con el comando SOUND. Por ejemplo:

Código: Seleccionar todo

PRESS_FIRE AT SCREEN 6
    # Si pulsamos ACCION sobre el objeto...
    IF FLAG 5 = 0
    IF PLAYER_TOUCHES 7, 5
    THEN
        # Lo borramos de la pantalla
        SET TILE (7, 5) = 0
        # Activamos la habilidad de matar enemigos
        SET FLAG 5 = 1
        # Sonido:
        SOUND 7
    END
END


Los sonidos disponibles en modo 48K son los siguientes:

Código: Seleccionar todo

   TABLA DE SONIDOS

   n   Sonido
   ----------
   0   Enemy destroyed
   1   Enemy hit
   2   Something
   3   Jump
   4   Player hit
   5   Enemy destroyed 2
   6   Shot
   7   Item #1      (item)
   8   Item #2      (key)
   9   Item #3      (life)


Alessandro escribió:2. Esta es la pantalla inicial del güego. Podés ver que el protagonista, en la esquina bajo a la derecha, se volve hacia la pared, lo que me parece algo tonto. ¿Como se puede iniciar con él volvido a la izquierda?


Aquí tendrás que ensuciarte las manos :D Tienes que modificar el frame inicial del sprite original. Puedes hacerlo modificando el archivo engine.h, en la linea 91. Debes poner player.facing a 0 (originalmente está a 1).

Código: Seleccionar todo

player.facing =    0;


De nuevo, no sé si esto funcionará XD ¿Puedes probar?

Por cierto, el juego tiene un aspecto sensacional :)
Como diría Rorshach: "Urm..."
Avatar de Usuario
angel
Mensajes: 23212
Registrado: Vie, 09 Ene 2009, 13:04
Ubicación: Torreznolandia
Contactar:

Re: Problemas y dudas sobre mi primero juego churrero

Mensajepor angel » Lun, 03 Mar 2014, 13:53

Qué buena pinta! :wan:
(_\_) (_|_) (_/_) (_|_) ILLO KE HEHEHEHEHEHEEEHEHEHEH!

¡Activa tu rainbow pechónico!
Avatar de Usuario
alxinho
Mensajes: 98
Registrado: Dom, 02 Feb 2014, 12:36

Re: Problemas y dudas sobre mi primero juego churrero

Mensajepor alxinho » Lun, 03 Mar 2014, 14:41

Ey! el primo de Horacio! :jias:

Volver a “La Churrera”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado