Página 4 de 5

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

Publicado: Lun, 17 Mar 2014, 13:18
por na_th_an
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):

$this->bbcode_second_pass_code('', '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.

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

Publicado: Lun, 17 Mar 2014, 13:32
por elborra
$this->bbcode_second_pass_quote('Fabio', 'L')ogre 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$this->bbcode_second_pass_code('', '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 :'(

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

Publicado: Lun, 17 Mar 2014, 18:42
por Fabio
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...

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

Publicado: Mar, 18 Mar 2014, 07:51
por na_th_an
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:

$this->bbcode_second_pass_code('', '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:

$this->bbcode_second_pass_code('', 'IF FLAG 10 = 4
THEN
WIN
END')

Por ejemplo :)

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

Publicado: Mar, 18 Mar 2014, 17:31
por Fabio
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.

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

Publicado: Mar, 18 Mar 2014, 17:36
por Fabio
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.

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

Publicado: Mar, 18 Mar 2014, 17:39
por na_th_an
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".

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

Publicado: Mié, 19 Mar 2014, 00:44
por Fabio
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? :?:

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

Publicado: Mié, 19 Mar 2014, 00:45
por Fabio
Este es mi tileset.h

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

Publicado: Mié, 19 Mar 2014, 01:05
por renegade
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.