Diciembre 22, 2009, 08:07:48 PM Ultima modificación: Diciembre 22, 2009, 08:09:31 PM por Blue-Fenix
Hola, buenas tardes.
Les quer?a hacer una consulta, estoy intentando hacer un inventario con un array llamado slot [ x ] donde x ser?a el casillero del mismo, pero al usar el for, me veo con un problema, parece ser que el for se ejecuta 4 veces antes de leer el codigo, realmente no lo entiendo:

Este c?digo se encuentra en el evento Left Button de cada item (es decir seria el codigo que debe ejecutarse cuando ?ste se ha agarrado) :

for (i=0;i<5;i+=1)
{
   if obj_item_manager.slot=0
   {
       obj_item_manager.slot=1;
       y=16*i;
       x=16;
   }
}


Digo que se ejecuta 4 veces porque ningun slot est? ocupado y siempre el primer item que se agarra aparece en x=64 cuando deveria aparecer en x=0...

Espero su respuesta,
Muchas gracias.
-Bruce Lee - Tu espiritu luchador nunca morir?-

-Quien vence a sus oponentes es Fuerte, Pero quien se vence a si mismo es la Fuerza-

slot es el array ? Si es asi te olvidaste de poner el indice:

for (i=0;i<5;i+=1)
{
    if obj_item_manager.slot[i]=0
    {
        obj_item_manager.slot[i]=1;
        y=16*i;
        x=16;
    }
}

Si, en realidad lo tengo como vos pusiste. Pero no anda tampoco... para m? deber?a funcionar... pero el primer item lo agarra y lo deja en el slot 4 y luego no se puede agarrar ning?n otro...
Espero sugerencias, gracias.
-Bruce Lee - Tu espiritu luchador nunca morir?-

-Quien vence a sus oponentes es Fuerte, Pero quien se vence a si mismo es la Fuerza-

una pregunta, como estas haciendo el inventario? te recomiendo que lo hagas con draw todo:

for (i=0;i<5;i+=1)
{
if object_item_manager.slot=0{
object_item_manager.slot=1}
}

y en object_item_manager en el evento draw pones:

if slot[1]=1{
draw_sprite(16,16,sprite)}

if slot[2]=1{
draw_sprite(16,32,sprite)}

if slot[3]=1{
draw_sprite(16,48,sprite)}

if slot[4]=1{
draw_sprite(16,64,sprite)}