Página 8 de 37

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Publicado: Lun, 24 Feb 2014, 14:17
por na_th_an
Eso es lo que pasa por ir haciendo las cosas a cachos XDD

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Publicado: Lun, 24 Feb 2014, 16:03
por na_th_an
Espero que aceptes ser mi conejillo de indias. Lo estoy haciendo "bien", con una sección en el script para definir los items y más cosas.

Te mantendré informado.

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Publicado: Lun, 24 Feb 2014, 16:08
por Nightwolf
Con sumo placer, acepto la sumisión :_)

¡Aprovecho para ir redactando la historia!

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Publicado: Lun, 24 Feb 2014, 16:37
por na_th_an
Aún no lo tengo listo, pero funcionará más o menos así, definiendo los items desde el script:

$this->bbcode_second_pass_code('', 'Se puede usar items y se puede hacer que el usuario los pueda seleccionar con la tecla "Z".
Todo se hace en una sección que debe definirse al principio del script, parecida a esta:

ITEMS
DEF_ITEM 0, 16
DEF_ITEM 1, 17
DEF_ITEM 2, 18
DEF_ITEMSET 1, 21, 3, HORZ
DEF_ITEM_SELECTOR 66, 8, 9
FLAG 20
END

* DEF_ITEM n, t
Define el item n, y le asigna el tile t. Hay que empezar en 0 y no se debe dejar huecos.

* DEF_ITEMSET x, y, step, orientación
Define donde se coloca el itemset en pantalla (para poder seleccionar). Los tiles se
dibujarán en orden de izquierda a derecha o de arriba a abajo, dependiendo si "orientación"
vale "HORZ" o "VERT". Se empezarán a dibujar en (x, y) y se separarán con "step".

Como los tiles son de 2x2 caracteres, un "step" de 3 dejará un espacio de separación.

* DEF_ITEM_SELECTOR color, c1, c2
Define el "cursor" que dice qué objeto está seleccionado y que se pintará justo debajo
de cada objeto. "color" define el atributo de color, c1 y c2 son dos caracteres del charset
que se emplearán para dibujarlo (0 a 255)

* FLAG f
Define qué flag contendrá qué item está seleccionado, para usar desde el script.')

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Publicado: Lun, 24 Feb 2014, 16:51
por na_th_an
Ya lo tengo hecho.

Tenemos dos opciones:

1.- Que yo monte un juego rápido de prueba con cosas que tengo hechas para probar que funciona (ni siquiera lo he compilado).
2.- Que lo pruebes YA.

Con 1 lo tienes más fácil pero tendrás que esperar a que encuentre rato (puede estar chungo).
Con 2 puede que ni siquiera te compile el juego XD

¿Has modificado mainloop.h? Porque hay añadidos en este archivo. También es necesario definir una sección al principio del script para definir los items y donde se colocarán. Si tienes seis items tienes que definir los seis y la posición y colocación de los seis, algo así:

$this->bbcode_second_pass_code('', 'ITEMS
# definimos qué tile tiene cada objeto.
# esto también sirve para que el motor sepa que hay 6 objetos.
# los números tienen que empezar en 0 y ser correlativos
DEF_ITEM 0, 32
DEF_ITEM 1, 33
DEF_ITEM 2, 34
DEF_ITEM 3, 35
DEF_ITEM 4, 36
DEF_ITEM 5, 37

# definimos donde colocar los items en el marcador.
# x, y, salto, orientación. Aquí empezamos en (1, 21),
# el 3 hace que se quede un espacio en blanco entre items,
# y se dibujen en horizontal
DEF_ITEMSET 1, 21, 3, HORZ

# Definimos el selector rojo brillante y con los caracteres
# equivalentes a (). Puedes cambiar el 8 y el 9 o dibujar
# algo chulo en vez de ( y ) en tu charset.
DEF_ITEM_SELECTOR 66, 8, 9
FLAG 20
END')

Tú decides.

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Publicado: Lun, 24 Feb 2014, 16:54
por Nightwolf
Qué buena pinta :)

Hay una cosa que estoy usando y que espero que se pueda, ahora mismo, en el juego hay 9 objetos. Sin embargo, no todos se tienen a la vez, como maximo habría 6, es por ello que algunos comparten hueco (ya que no se pueden tener, sin usar y gastar el otro) De esa forma podía tener 6 huecos. Espero que esta eventualidad pueda estar contemplada :)

O quizás el sistema podría ser tan macho, que lo que haga es completar los huecos vacíos del inventario, y que mueva lo objetos en el caso de que haya más objetos en el inventario que los huecos en pantalla.

Por ejemplo, en el Rescate Atlántida, solo se muestran 3 objetos, pero puedes tener más y estos mueven al pulsar el botón de elegir objeto.

No sé si me explico :P


EDIT: Tras ver el nuevo post, si me das dos-tres horas horas lo pruebo :)

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Publicado: Lun, 24 Feb 2014, 16:58
por na_th_an
Hmmm - Para lo que quieres hacer, necesito ampliar el script. Back to the drawing board :lol:

Lo otro que dices de mover los huecos y tal es más complicado porque estoy intentando hacerlo todo en el código mínimo. Si nos ponemos heavy podemos diseñar un código de objetos de la hostia, pero aquí hay poco sitio y hay que mamar.

Siempre hay que buscar la solución "óptima", que es "la más petona ocupando moderadamente poco".

Voy a darle una vuelta :)

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Publicado: Lun, 24 Feb 2014, 17:02
por na_th_an
Voy a hacer un hilo para esto, que no se nos pierda :)

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Publicado: Lun, 24 Feb 2014, 21:47
por Nightwolf
Bueno, ya ando por aquí. Te pego el mainloop. :) Que no sé por dónde empezar :P

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Publicado: Mar, 25 Feb 2014, 00:11
por Nightwolf
Bueno, me he puesto manos a la obra a ver si puedo hacer un sistema sencillo para ir tirando :)

He definido la tecla key_z, y he hecho que la tecla key_z incremente el flags[20].

Sin embargo, veo que ingame no funcionan las comprobaciones de que FLAG valga 20 :(


$this->bbcode_second_pass_code('', 'PRESS_FIRE AT ANY
IF TRUE
THEN
PRINT_TILE_AT (2,22)=0
PRINT_TILE_AT (5,22)=0
PRINT_TILE_AT (8,22)=0
PRINT_TILE_AT (11,22)=0
PRINT_TILE_AT (14,22)=0
PRINT_TILE_AT (17,22)=0

END

IF FLAG 20 = 0
THEN
WIN
PRINT_TILE_AT (2,22)=5
END
')

Esto lo que haría es que si pulso Z seis veces, debería darme la pantalla de victoria. Pero no lo hace. si lo pongo en el código C del mainloop, sí funciona :S

Adjunto el mainloop

EDIT 1 Leches, estoy poniendo FLAGS, y son FLAG en el script :S Aún así parece que tampoco funciona...

EDIT 2: ¡Funciona! :)

EDIT 3: Aunque funciona felizmente, es bastante ineficiente en cuanto hay un SET_FIRE_ZONE en la pantalla, se ralentiza un montón el motor, debido a que está repintando contínuamente el inventario, por lo que habría que hacer una nueva comprobación de clausula. Estoy trasteando pero no doy con ello. Algo como SET_INVENTORY que se lancen las condiciones cuando se pulsa la tecla Z