Evitar que el prota coja el color del fondo y Scripts

For all things Churrera. ¿Estás haciendo un juego? ¿quieres proponer un cambio? ¿tienes alguna duda? ¡Cuéntanoslo!

Moderador: na_th_an

Gocho
Mensajes: 123
Registrado: Mar, 19 Nov 2013, 10:32

Evitar que el prota coja el color del fondo y Scripts

Mensajepor Gocho » Jue, 19 Jun 2014, 12:03

¿Como cambio el modo del color clash en la churrera?

Ahora mismo el prota coge el color del fondo por el que pasa. Y yo quiero que lo haga al revés. Que el fondo coja el color blanco del prota, para que se vea mejor.

No he visto nada en el config.h asi que imagino que tendré que cambiar algo en el engine.h
Última edición por Gocho el Jue, 19 Jun 2014, 22:23, editado 1 vez en total.
Avatar de Usuario
D_Skywalk
Mensajes: 352
Registrado: Mar, 01 Oct 2013, 13:36

Re: Evitar que el prota coja el color del fondo

Mensajepor D_Skywalk » Jue, 19 Jun 2014, 13:03

En asylum lo que hice fue cambiar el color del tile (y luego lo recuperaba cuando dejabas las setas).

Lo tienes es el src pero básicamente es la función de pintar tiles (esta que está en printer) modificada para cambiar el color de su tile :)

Código: Seleccionar todo

void draw_coloured_tile (unsigned char x, unsigned char y, unsigned char t) {
   unsigned char *pointer;
   unsigned char xx, yy;
   t = 64 + (t << 2);
   pointer = (unsigned char *) &tileset [2048 + t];
   sp_PrintAtInv (y, x, pointer [0], t);
   sp_PrintAtInv (y, x + 1, pointer [1], t + 1);
   sp_PrintAtInv (y + 1, x, pointer [2], t + 2);
   sp_PrintAtInv (y + 1, x + 1, pointer [3], t + 3);   
}


(usa pointer para asignar el color y desde extern llamas y repintas)

Un saludo!
David Skywalker
Weblog: http://david.dantoine.org
Gocho
Mensajes: 123
Registrado: Mar, 19 Nov 2013, 10:32

Re: Evitar que el prota coja el color del fondo

Mensajepor Gocho » Jue, 19 Jun 2014, 13:34

Había olvidado activarlo en el Config.h

Voy sin memoria hasta comprimiendo las pantallas de Titulo y demás XD
Avatar de Usuario
D_Skywalk
Mensajes: 352
Registrado: Mar, 01 Oct 2013, 13:36

Re: Evitar que el prota coja el color del fondo

Mensajepor D_Skywalk » Jue, 19 Jun 2014, 14:49

Gocho escribió:Había olvidado activarlo en el Config.h

Voy sin memoria hasta comprimiendo las pantallas de Titulo y demás XD

pilla el printer optimizao de Justin.
Cambia el GAMEOVER y quita los bordes usando esa función que ganas un bastante.
pasa los for a do while (mira justin)...

había más cosas donde recortar, pero eso es lo que recuerdo ahora mismo XD
David Skywalker
Weblog: http://david.dantoine.org
Avatar de Usuario
na_th_an
Mensajes: 26412
Registrado: Vie, 09 Ene 2009, 12:18

Re: Evitar que el prota coja el color del fondo

Mensajepor na_th_an » Jue, 19 Jun 2014, 15:29

Es posible hacer que los sprites tiñan el fondo de un color fijo en splib2, pero queda muy mal. Hay que tener en cuenta que siempre se tiñen 9 caracteres aunque el sprite esté perfectamente alineado, por eso siempre prefiero hacer que los sprites no tiñan el fondo. Además, es más lento.

De todos modos, es tan fácil como modificar la creación de los sprites en mainloop.h. Hay varios grupos de lineas para definir los sprites que se emplean (prota, enemigos, disparos) que se parecen a esto:

Código: Seleccionar todo

   sp_player = sp_CreateSpr (sp_OR_SPRITE, 3, sprite_2_a, 1, TRANSPARENT);
   sp_AddColSpr (sp_player, sprite_2_b, TRANSPARENT);
   sp_AddColSpr (sp_player, sprite_2_c, TRANSPARENT);


El parámetro "TRANSPARENT" es el que hace que el sprite tome el color de fondo, pero podemos cambiarlo por un atributo. Escribiendo ahí un atributo (por ejemplo "4" para INK verde, PAPER negro) los sprites tendrán color propio.

Pero ya te digo que queda bastante mal.
Como diría Rorshach: "Urm..."
Gocho
Mensajes: 123
Registrado: Mar, 19 Nov 2013, 10:32

Re: Evitar que el prota coja el color del fondo

Mensajepor Gocho » Jue, 19 Jun 2014, 16:21

En dicho caso lo omitiré. Ya ando escaso de tiempo buscando una forma decente de pintar y borrar strings y scriptando todo antes de mañana.
Avatar de Usuario
D_Skywalk
Mensajes: 352
Registrado: Mar, 01 Oct 2013, 13:36

Re: Evitar que el prota coja el color del fondo

Mensajepor D_Skywalk » Jue, 19 Jun 2014, 16:26

había entendido, que querías cambiar el color de los tiles, con script o algo...
sorry
enga ánimo! :cheer:
David Skywalker
Weblog: http://david.dantoine.org
Avatar de Usuario
na_th_an
Mensajes: 26412
Registrado: Vie, 09 Ene 2009, 12:18

Re: Evitar que el prota coja el color del fondo

Mensajepor na_th_an » Jue, 19 Jun 2014, 16:31

Para pintar strings puedes pillar el extern.h que lleva el Dogmole de Jarlaxe... Para borrarlos lo más práctico es hacer un REENTER con lo que se redibuja la pantalla completa, pero a veces puede quedar mal.
Como diría Rorshach: "Urm..."
antoniovillena
Mensajes: 494
Registrado: Jue, 24 Oct 2013, 15:52

Re: Evitar que el prota coja el color del fondo

Mensajepor antoniovillena » Jue, 19 Jun 2014, 16:37

Os dejo una rutina adaptada de FASE por si queréis pintar strings con ella, es para pintar con la fuente del ZX Spectrum.

Código: Seleccionar todo

void __CALLEE__ PrintStr ( char *string, unsigned char x, unsigned char y ){
    #asm
        pop     af
        pop     de
        pop     bc
        pop     ix
        push    af
        ld      a, e
        and     $18
        or      $40
        ld      h, a
        ld      a, e
        rrca
        rrca
        rrca
        and     $e0
        add     a, c
        ld      l, a
print:  ex      de, hl
        ld      a, (ix)
        inc     ix
        add     a, a
        ret     z
        ld      l, a
        ld      h, $0f
        add     hl, hl
        add     hl, hl
        ld      b, 4
print1: ld      a, (hl)
        ld      (de), a
        inc     l
        inc     d
        ld      a, (hl)
        ld      (de), a
        inc     l
        inc     d
        djnz    print1
        ld      hl, $f801
        add     hl, de
        jr      print
    #endasm
}
Gocho
Mensajes: 123
Registrado: Mar, 19 Nov 2013, 10:32

Re: Evitar que el prota coja el color del fondo

Mensajepor Gocho » Jue, 19 Jun 2014, 18:16

Lo del Dogmole es igual que el de Ramiro, ¿no? Es el que estaba tuneando además del prnt_str que tenéis en la churrera.
Funcionan ambos bien. El problema lo tengo con el borrado :?

Seguramente no esté usando bien el script. Intento pintar cuando entra en la pantalla y lo que hace es quedarse en el espera_activa () y no entra en la pantalla hasta que pulso un botón.

Voy a ver si lo cambio a pintar cuando pise un tile con un set_fire_zone y demás... ¿Puedo encadenar los IFs para hacer ELSES?

Ej:

Código: Seleccionar todo

PRESS_FIRE AT SCREEN 7
   IF PLAYER_TOUCHES (7,5)
    IF FLAG 3 = 0
   THEN
      SET FLAG 3 = 1
               # Bienvenido
                EXTERN 4
                REDRAW
   END
   IF FLAG 3 = 1
   THEN
               # No tengo nada mas que decirte
                EXTERN 2
                REDRAW
   END
END

Volver a “La Churrera”

¿Quién está conectado?

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