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
karkayu
Mensajes: 40
Registrado: Lun, 07 Sep 2015, 14:34

Re: Terminare mi juego churrero? ;)

Mensajepor karkayu » Vie, 02 Oct 2015, 12:54

fupinet escribió:Gracias a todos!
A mi gusta mucho el estilo de los dos azpiri!!!
Sobre el ZXDEV no lo sabia...por lo que he leido creo que ya no puedo participar :(


Una pena porque está muy chulo :(
Avatar de Usuario
angel
Mensajes: 23212
Registrado: Vie, 09 Ene 2009, 13:04
Ubicación: Torreznolandia
Contactar:

Re: Terminare mi juego churrero? ;)

Mensajepor angel » Vie, 02 Oct 2015, 13:01

Bueno, esté o no esté en un concurso, disfrutaremos del juego :D
(_\_) (_|_) (_/_) (_|_) ILLO KE HEHEHEHEHEHEEEHEHEHEH!

¡Activa tu rainbow pechónico!
fupinet
Mensajes: 112
Registrado: Vie, 05 Jun 2015, 12:55

Re: Terminare mi juego churrero? ;)

Mensajepor fupinet » Vie, 02 Oct 2015, 13:51

En verdad si participo es por estar ahi y colaborar con el evento en si.
Jeje a ver si me pueden dejar apuntarme aunque no pueda ganar por estar descalificado ajajajaja

Esto es para pasarlo bien y que la gente juegue al juego no para ganar algo.
:D :vahka:
Avatar de Usuario
karkayu
Mensajes: 40
Registrado: Lun, 07 Sep 2015, 14:34

Re: Terminare mi juego churrero? ;)

Mensajepor karkayu » Vie, 02 Oct 2015, 14:36

fupinet escribió:En verdad si participo es por estar ahi y colaborar con el evento en si.
Jeje a ver si me pueden dejar apuntarme aunque no pueda ganar por estar descalificado ajajajaja

Esto es para pasarlo bien y que la gente juegue al juego no para ganar algo.
:D :vahka:


Si lo vas a intentar, quita de forma momentanea el video de youtube.

Y sí, yo también participo por colaborar con el evento. Tengo claro que el último puesto será para mi :mrgreen:
fupinet
Mensajes: 112
Registrado: Vie, 05 Jun 2015, 12:55

Re: Terminare mi juego churrero? ;)

Mensajepor fupinet » Jue, 15 Oct 2015, 13:57

Por partes.

1. En mi juego hay una intro.

Si te valen cutscenes tipo imagen arriba y texto abajo hay código de sobra en varios juegos que se puede adaptar.

Es posible hacer alguna animación en la intro...como sprites o varias imagenes bin juntas creando una animación?

Hacer una animación con sprites por supuesto que es posible, pero hay que programarla en C y ejecutarla en el sitio justo, todo eso teniendo en cuenta que tiene que caber y que este tipo de código ocupa muchísimo.

Varias imagenes bin juntas - En modo 128K puedes meter varias imagenes, pero tampoco muchas. Esto tiene varios problemas:
1.- el tiempo de descompresión hay que tenerlo en cuenta. Descomprimir una imagen no es inmediato.
2.- no hay backbuffer, la descompresión se hace directamente sobre la pantalla, o sea, que "se ve" mientras la imagen nueva se va dibujando.
3.- Personalmente, que un juego tarde 10 minutos en cargar solo porque tiene una intro con muchas imagenes, pero luego el juego es corto... no me parece buena idea :)

o un gif....:D

GIF es un formato demasiado complejo como para usar en el Spectrum, y más con animación. No creo que sea viable de ninguna forma.

Dicho todo esto, nosotros programamos un final animado para Ninjajar usando sólo scripting y poniendo tiles del tileset sobre la pantalla. No es lo ideal, pero al menos hacía mucha risa y daba el pego genialmente.

2. Podría poner un contador interno y cada x tiempo ejecute una accion...por ejemplo un texto en pantalla o una imagen


Tienes un temporizador disponible en el motor que se puede manejar desde el scripting. Mira whatsnew.txt.

3. Me gustaría poner un flash o poner la pantalla en blanco rapidamente . He visto que un efecto similar tiene el juego Tenebra Macabre.

Esto no es tan fácil.

Tenebra Macabre usa una versión modificada de splib2 en la que se pueden desactivar los atributos. Por defecto, splib2 actualiza los pixels de la pantalla y sus colores; con esa versión modificada (creo que la dejé en algún sitio en los fuentes de TM) se puede activar un flag para que deje de hacerlo - y modificarlos nosotros. Así hacemos el efecto del halo y el efecto del flash.

No sé si el efecto de flash funcionará guay en la versión sin modificar de splib2, puedes probar... En el código de TM está el archivo overlay.h, en la función "lighting". El problema es que esa función lo único que hace es poner la pantalla en blanco... Pero luego no hay nada que la vuelva a colorear. Estas funciones son muy específicas de este juego.

Para que pudieras usarlo habría que crear un buffer donde copiar los atributos de pantalla para restaurarlos tras el flashazo.

Cualquier cosa necesita unas cuantas nociones de C o, mejor aún, ensamblador.
fupinet
Mensajes: 112
Registrado: Vie, 05 Jun 2015, 12:55

Re: Terminare mi juego churrero? ;)

Mensajepor fupinet » Jue, 15 Oct 2015, 17:39

Este sistema de respuesta sin saber quien responde es nuevo no? ajajaja
ok mas o menos lo que me imaginaba! creo que tendre que pensar en otras cosas....
Muchas GRACIAS! :D
fupinet
Mensajes: 112
Registrado: Vie, 05 Jun 2015, 12:55

Re: Terminare mi juego churrero? ;)

Mensajepor fupinet » Vie, 16 Oct 2015, 10:28

Hola de nuevo :D
es posible poner en el script algo como esto
ENTERING SCREEN 1
IF TRUE
THEN
SET FIRE ZONE 1,113,31,143
END
END

PRESS_FIRE_SCREEN 1
IF TILE(1, 8) =14
THEN
#Ejecuta cualquier accion
END
END

Quiero que cuando un tile movible llegue a una zona determinada se ejecute una acción
se puede hacer?

Un saludo y muchas gracias.
Avatar de Usuario
na_th_an
Mensajes: 26412
Registrado: Vie, 09 Ene 2009, 12:18

Re: Terminare mi juego churrero? ;)

Mensajepor na_th_an » Vie, 16 Oct 2015, 12:27

fupinet escribió:Este sistema de respuesta sin saber quien responde es nuevo no? ajajaja
ok mas o menos lo que me imaginaba! creo que tendre que pensar en otras cosas....
Muchas GRACIAS! :D


Ostras, soy un bananas! Le di a editar en vez de a quotear XDD
Sorry :lol:
Como diría Rorshach: "Urm..."
Avatar de Usuario
na_th_an
Mensajes: 26412
Registrado: Vie, 09 Ene 2009, 12:18

Re: Terminare mi juego churrero? ;)

Mensajepor na_th_an » Vie, 16 Oct 2015, 12:28

fupinet escribió:Hola de nuevo :D
es posible poner en el script algo como esto
ENTERING SCREEN 1
IF TRUE
THEN
SET FIRE ZONE 1,113,31,143
END
END

PRESS_FIRE_SCREEN 1
IF TILE(1, 8) =14
THEN
#Ejecuta cualquier accion
END
END

Quiero que cuando un tile movible llegue a una zona determinada se ejecute una acción
se puede hacer?

Un saludo y muchas gracias.


Tienes que leerte whatsnew.txt. Todos tenéis que leeros ese documento :lol:

Lo que quieres hacer esta totalmente automatizado desde la versión nomeacuerdo, la que llevaba Cadaverion. De hecho, puedes mirar los fuentes de Cadaverion para ver mil cosas relacionadas con esto y con los temporizadores.

Te pego el cacho de whatsnew.txt donde se menciona:

Código: Seleccionar todo

Control de bloques empujables
=============================

Hemos mejorado el motor para que se pueda hacer más cosas con el tile 14 de
tipo 10 (tile empujable) que simplemente empujarlo o que detenga la trayectoria
de los enemigos. Ahora podemos decirle al motor que lance la sección PRESS_FIRE
de la pantalla actual justo después de empujar un bloque empujable. Además, el
número del tile que se "pisa" y las coordenadas finales se almacenan en tres
flags que podemos configurar, para poderlas usar desde el script para hacer
comprobaciones.

Este es el sistema que se emplea en el script de Cadàveriön para controlar que
coloquemos las estatuas sobre los pedestales, por poner un ejemplo.

Recordemos lo que teníamos hasta ahora:

#define PLAYER_PUSH_BOXES             
#define FIRE_TO_PUSH               

La primera es necesaria para activar los tiles empujables. La segunda obliga al
jugador a pulsar FIRE para empujar y, por tanto, no es obligatoria. Veamos
ahora las nuevas directivas:

#define ENABLE_PUSHED_SCRIPTING
#define MOVED_TILE_FLAG       1
#define MOVED_X_FLAG          2
#define MOVED_Y_FLAG          3

Activando ENABLE_PUSHED_SCRIPTING, el tile que se pisa y sus coordenadas se
almacenarán en los flags especificados por las directivas MOVED_TILE_FLAG,
MOVED_X_FLAG y MOVED_Y_FLAG. En el código que se muestra, el tile pisado se
almacenará en el flag 1, y sus coordenadas en los flags 2 y 3.

#define PUSHING_ACTION

Si definimos esta, además, se ejecutarán los scripts PRESS_FIRE AT ANY y
PRESS_FIRE de la pantalla actual.

Recomendamos estudiar el script de Cadàveriön, el cual, además de ser un buen
ejemplo del uso del temporizador y del control del bloque empujable, resulta
ser un script bastante complejo que emplea un montón de técnicas avanzadas.


En el documento sobre el scripting msc3 de MK2 hay un trozo que también habla de él. En la Churrera funcionaba igual, así que también te sirve:

Código: Seleccionar todo

Bloques que se empujan
----------------------

Directivas MOVED_TILE_FLAG, MOVED_X_FLAG y MOVED_Y_FLAG

Si hemos activado que el jugador pueda empujar cajas (tile 14 del tileset,
con "behaviour" = 10) mediante #define PLAYER_PUSH_BOXES, y además activamos
la directiva ENABLE_PUSHED_SCRIPTING, cada vez que el jugador mueva una caja
(o bloque, lo que sea que hayamos puesto en el tile 14 ;-) ), ocurrirá esto:

- El número de tile que se "pisa" se copiará en el flag MOVED_TILE_FLAG.
- La coordenada X a la que se mueve la caja se copia en el flag MOVED_X_FLAG.
- La coordenada Y a la que se mueve la caja se copia en el flag MOVED_Y_FLAG.

Si, además, definimos PUSHING_ACTION, se lanzarán las secciones PRESS_FIRE
(la ANY y la correspondiente a la pantalla actual) y podremos hacer las
comprobaciones inmediatamente.

Este sistema se emplea en Cadaverion (aunque sea un juego de la Churrera,
esto funciona exactamente igual) para comprobar que hemos colocado las
estatuas en sus pedestales.

Por ejemplo, si queremos abrir una puerta si se empuja una caja a la posición
(7, 7) de la pantalla 4, podemos definir:

#define PLAYER_PUSH_BOXES
#define ENABLE_PUSHED_SCRIPTING
#define PUSHING_ACTION
#define MOVED_TILE_FLAG      1   // Esto no lo vamos a usar en este ejemplo
#define MOVED_X_FLAG      2
#define MOVED_Y_FLAG      3

Y en nuestro script...

PRESS_FIRE AT SCREEN 4
   IF FLAG 2 = 7
   IF FLAG 3 = 7
   THEN
      # La caja que hemos movido está en la posición 7,7
      # abrir puerta...
   END
END

Si, por ejemplo, queremos que una puerta se abra siempre que se coloque una
caja sobre un tile "pulsador", que hemos dibujado en el tile, digamos, 3,
(con los mismos defines) tendríamos:

PRESS_FIRE AT SCREEN 4
    IF FLAG 1 = 3
    THEN
        # La caja que hemos movido está sobre un tile 3
        # abrir puerta...
    END
END
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, 13:13

ok!!! pero entonces una vez activado eso. El flag 1 2 3 funciona solo para eso.
Tengo que borrar los flag que ya tenia no?

Volver a “La Churrera”

¿Quién está conectado?

Usuarios navegando por este Foro: Bing [Bot] y 1 invitado