Buenas tardes a todos!!

Tengo una duda y me gustaría saber si me pudiesen ayudar:
En el juego hay una tienda de pociones, cada poción tiene un efecto (aumenta velocidad, etc), me gustaría hacer que cuando el jugador compre en la tienda pociones, salga en los niveles en una parte donde pueda darle clic para usarla, de modo que quedara así:

ROJO: Poción seleccionada con la cantidad comprada
AMARILLO: Flechas < > para cambiar de poción

Osea, la pregunta es la siguiente: ¿Cómo pongo las pociones que ha comprado, y las flechas < > para cambiar de poción, y que al usarla se le baje -1 a la cantidad que haya comprado?

Agradezco todo tipo de información que me déis!!

PD: También quisiera saber cómo hacer que todo lo que sea el menú del mapa (lo de arriba, donde sale las pociones y los botones < >), hacer que el zoom del jugador al moverse las pociones no se queden atrás, (osea, que siempre estén fijas)

#1 Julio 17, 2015, 02:55:13 AM Ultima modificación: Julio 17, 2015, 07:59:31 PM por Chrom
Primero, Hola amigo, que bien se ve tu juego. Bueno yo pienso que lo primero tienes que hacer es los Sprites de cada poción y los sprites de las flechas para cambiarlas, lo siguiente es dibujarlas correctamente.

1. Crea los sprites y los centras.
Create:

globalvar pocion;
poc=0;
num=poc;
pocion[0]=sprite1
pocion[1]=sprite2

2. Crea un objeto llamado control o barra de pociones, etc.
3. Ve a draw y en la room ve las cordenadas donde quieres que se dibuje el sprite de cada flecha y las pociones:
Draw:

//Esto es un aproximado
draw_sprite(spr_flecha_izq,0,32,64)
draw_sprite(pocion[0])
draw_text(128,64,string(num))
draw_sprite(spr_flecha_der,0,150,64)

Collision con la pocion:
Pocion[0]+=1;

Lo que todavia no sé es como hacer para cambiar las pociones y usarlas, porque no se usar arrays muy bien, sorry  :-X
Pero almenos espero que te sirva para dibujarlas

Cita de: Chrom en Julio 17, 2015, 02:55:13 AM
Primero, Hola amigo, que bien se ve tu juego. Bueno yo pienso que lo primero tienes que hacer es los Sprites de cada poción y los sprites de las flechas para cambiarlas, lo siguiente es dibujarlas correctamente.

1. Crea los sprites y los centras.
Create:

globalvar pocion;

pocion[0]=sprite1
pocion[1]=sprite2

2. Crea un objeto llamado control o barra de pociones, etc.
3. Ve a draw y en la room ve las cordenadas donde quieres que se dibuje el sprite de cada flecha y las pociones:
Draw:

//Esto es un aproximado
draw_sprite(spr_flecha_izq,0,32,64)
draw_sprite(pocion[0])
draw_sprite(spr_flecha_der,0,150,64)


Lo que todavia no sé es como hacer para cambiar las pociones y usarlas, porque no se usar arrays muy bien, sorry  :-X
Pero almenos espero que te sirva para dibujarlas

Muchas gracias, por supuesto que me has ayudado, te lo agradezco!!

Espero que otro sepa la otra parte, cambiar de poción.

Saludos!!

Tenes que tener otra variable que cambie de valor y asi cambie de pocion en el array
Tenes asi:
pocion[0]=sprite1
pocion[1]=sprite2

Y tenes que hacer esto:
declaras la variable en CREATE
num_pocion=0

Despues al dibujar pone:
draw_sprite(pocion[num_pocion],0,x,y)

Para cambiar de pocion solo tenes que cambiar el valor de la variable num_pocion

¡Muchas gracias a los dos por vuestra ayuda!

Solo falta la última pregunta, ¿cómo hago para que el zoom que sigue al personaje no deje atrás las pociones, (osea, el menú de arriba)

Un saludo :D

Es facil. En lo que quieras que este siempre, pon el evento  draw gui, y dentro draw self ()

arcangelcaos, esta usando la verson 8 no la Studio.
Con el zoom te referis a que todo se achica y agranda o l movimiento hacia los lados ?

Sorry, no me di cuenta, y como no tengo gm8 no se si existe esa funcion o no.
El otro tema, el de los ítem podrias usar arrays de 2 dimensiones.  Objetos (0,0) para el objeto y Objetos (0,1) para la cantidad.
Asi cada vez que le des a una flecha solo tienes que cambiar el primer numero.
EJEMPLO
CREATE
objeto=0
ObjetosArrays(0,0)=0

Ahora quedaria meter dentro del array los objetos y su cantidad, pero como no se como lo tienes diseñado no sencomo ponértelo. Podrias con un for o algo por el estilo.

luego
sprite_index= objetosArray (objeto,0)
Cantidad = objetosArray (objeto,1)

Y en las fechas a la variable objeto le sumas 1 o se lo quitas. Pero ten en cuenta de comprobar si el ultimo o no, o te dara error.
Ejemplo
if objeto>0  objeto-=1