Finalizar juego al recolectar 4 objetos (tiles) diferentes

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: 26412
Registrado: Vie, 09 Ene 2009, 12:18

Re: Finalizar juego al recolectar 4 objetos (tiles) diferentes

Mensajepor na_th_an » Lun, 17 Mar 2014, 13:18

Para eso utilizas PRINT_TILE_AT, que sirve para imprimir un tile donde queramos, y nada más (SET_TILE lo que hace es modificar el area de juego, a todos los efectos, colisiones incluidas. PRINT_TILE_AT solo imprime, y no estamos limitados al área de juego):

Código: Seleccionar todo

PRINT_TILE_AT (x, y) = t


Donde x e y son coordeandas de caracter, por toda la pantalla del spectrum. x va de 0 a 30 e y de 0 a 22.
Como diría Rorshach: "Urm..."
Avatar de Usuario
elborra
Mensajes: 209
Registrado: Dom, 12 Ene 2014, 14:37

Re: Finalizar juego al recolectar 4 objetos (tiles) diferentes

Mensajepor elborra » Lun, 17 Mar 2014, 13:32

Fabio escribió:Logre que cuando paso por encima del objeto este se borra del mapa. Ahora bien, como hago para que en simultaneo se dibuje en la parte inferior de la pantalla, para que el jugador sepa que ya lo recolecto?. Con el SET TILE (x, y) = algo no funciona ya que estoy fuera de la pantalla del juego.
SET_TILE pinta dentro de la zona de juego. Si no me equivoco estabas llevando los objetos por tu cuenta (es decir que no usas el tipo objeto del juego), así que en tu caso para imprimir un tile fuera de la zona de juego después de recogerlo es usar en el script EXTERN n, y ya desde el fichero extern.h usar por ejemplo

Código: Seleccionar todo

draw_coloured_tile (x, y, tile);
donde x e y representan porciones de 8 pixels. Así draw_coloured_tile (4, 16, 21); pintará el tile 21 en x=32 e y=128

Edito: PRINT_TILE_AT... Estoy tonto, yo ya me obceco tanto con programar con c que se me olvidan cosas del scripting :'(
Última edición por elborra el Mar, 18 Mar 2014, 10:25, editado 1 vez en total.
Avatar de Usuario
Fabio
Mensajes: 44
Registrado: Vie, 17 Ene 2014, 21:52

Re: Finalizar juego al recolectar 4 objetos (tiles) diferentes

Mensajepor Fabio » Lun, 17 Mar 2014, 18:42

Anduvo perfecto con lo de PRINT_TILE_AT (x, y) = t. Las otras opciones, como con esta funciono, todavia no las probe. Pero seguro que lo haremos. A seguir trabajando...
Ahora queda como hacer que la compu sepa que se recolectaron los cinco objetos. Supongo que con un flag que se vaya incrementando de uno en uno. Y cuando llegue a cinco listo.
Igualmente le estoy agregando algo, y es que esos cinco objetos, una vez recolectados, haya que llevarlos a algun lugar en el mapa oculto, y que aparezca justamente cuando se junten todos lo sobjetos... Veremos...
Avatar de Usuario
na_th_an
Mensajes: 26412
Registrado: Vie, 09 Ene 2009, 12:18

Re: Finalizar juego al recolectar 4 objetos (tiles) diferentes

Mensajepor na_th_an » Mar, 18 Mar 2014, 07:51

Hay varias opciones para hacerlo. La que se te ocurre a tí va bien encaminada.

¿Se pueden recolectar los objetos en cualquier orden, y el juego debe terminarse al recoger el último de ellos? En ese caso tienes que hacer las comprobaciones luego de recoger cada objeto.

Imaginate que usas el flag 10 para ir haciendo el conteo. Cuado cojas un objeto estarás haciendo algo parecido a esto:

Código: Seleccionar todo

IF PLAYER_TOUCHES x, y
IF FLAG N = 0
THEN
    # marcar objeto como cogido.
    SET FLAG N = 1
    # Borrar de la pantalla
    SET TILE (x, y) = 0
    # Pintar en el marco
    PRINT_TILE_AT (xx, yy) = t
    # Incrementar el contador
    INC FLAG 10, 1
END


Pues justo después de cada uno de estos trozos de código, debes añadir la comprobación de que ya tienes cuatro:

Código: Seleccionar todo

IF FLAG 10 = 4
THEN
    WIN
END


Por ejemplo :)
Como diría Rorshach: "Urm..."
Avatar de Usuario
Fabio
Mensajes: 44
Registrado: Vie, 17 Ene 2014, 21:52

Re: Finalizar juego al recolectar 4 objetos (tiles) diferentes

Mensajepor Fabio » Mar, 18 Mar 2014, 17:31

En efecto, se pueden recolectar en cualquier orden. y el ultimo que se recolecte (sin importar el orden da por finalizado el juego.) Los comentarios que me has escrito me fueron de suma utilidad.
Avatar de Usuario
Fabio
Mensajes: 44
Registrado: Vie, 17 Ene 2014, 21:52

Re: Finalizar juego al recolectar 4 objetos (tiles) diferentes

Mensajepor Fabio » Mar, 18 Mar 2014, 17:36

Ya que esta les hago otra consulta. El tile 19 (el que se usa para rellenar la pantalla al azar) me genera este error cuando el personaje o cualquier enemigo pasa por el: hay un cuadradito negro que tapa al personaje cuando este pasa por el, como pueden ver en la imagen. lo que esteticamente lo hace bastannte feo. Alguna sugerencia para corregirlo.
Adjuntos
Sin título.png
Sin título.png (1.76 KiB) Visto 2225 veces
Avatar de Usuario
na_th_an
Mensajes: 26412
Registrado: Vie, 09 Ene 2009, 12:18

Re: Finalizar juego al recolectar 4 objetos (tiles) diferentes

Mensajepor na_th_an » Mar, 18 Mar 2014, 17:39

Sí, tienes que modificar tileset.h tal y como se explica en el capítulo 2 del manual, para eliminar los atributos a "0" y sustituirlos por un color visible como "7".
Como diría Rorshach: "Urm..."
Avatar de Usuario
Fabio
Mensajes: 44
Registrado: Vie, 17 Ene 2014, 21:52

Re: Finalizar juego al recolectar 4 objetos (tiles) diferentes

Mensajepor Fabio » Mié, 19 Mar 2014, 00:44

Si, los de la linea 279, pero ya les habia cambiado el 0 por el 7. Y cual sera la linea que representa a ese tile 19? :?:
Última edición por Fabio el Mié, 19 Mar 2014, 00:55, editado 1 vez en total.
Avatar de Usuario
Fabio
Mensajes: 44
Registrado: Vie, 17 Ene 2014, 21:52

Re: Finalizar juego al recolectar 4 objetos (tiles) diferentes

Mensajepor Fabio » Mié, 19 Mar 2014, 00:45

Este es mi tileset.h
Adjuntos
tileset.h
(9.65 KiB) Descargado 89 veces
renegade
Mensajes: 63
Registrado: Sab, 15 Feb 2014, 19:13

Re: Finalizar juego al recolectar 4 objetos (tiles) diferentes

Mensajepor renegade » Mié, 19 Mar 2014, 01:05

Hay que cambiar los ceros por 7 en el caso de tener 16 tiles en la linea 279 pero como tu tienes 48 tiles pues desde la 279 hasta el final,aqui te lo dejo arreglado,un saludo.

Volver a “La Churrera”

¿Quién está conectado?

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