Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: izubiaurre on April 07, 2009, 10:10:36 AM

Title: Posible bug en función put()
Post by: izubiaurre on April 07, 2009, 10:10:36 AM
Ejecutando mi código en la revisión 34 la función put no me pinta nada, sin embargo y si no estoy muy errado hasta la versión 32 sí que funcionaba bien. He probado con una versión más antigua (r28) y se muestran bien los gráficos.

Title: Re: Posible bug en función put()
Post by: SplinterGU on April 07, 2009, 10:39:53 AM
sin ejemplo es un poco dificil...
Title: Re: Posible bug en función put()
Post by: SplinterGU on April 07, 2009, 10:46:03 AM
lo acabo de probar y funciona perfecto.

pone algun ejemplo donde no funcione, gracias.
Title: Re: Posible bug en función put()
Post by: izubiaurre on April 07, 2009, 10:58:48 AM
[code language="bennu"]
for (i = 0 - VISION; i < VISION + 1; i++)
   for (j = 0 - VISION; j < VISION + 1; j++)
      tile = map_get_pixel(f_lab, 9+maila, tile_x+i, tile_y+j);
      //if (      tile == TILE_HORMA    or tile == ATE_GORRIA    or tile == ATE_URDINA
      //      or    tile == ATE_HORIA    or tile == ATE_BERDEA    or tile == TILE_TRANPA
      //      or    tile == TILE_HASI    or tile == TILE_BUKA)
      //put(f_lab, TILE_HUTSA,    i_d+301+(40*i) , j_d+300+(40*j) );
      //put(f_lab, tile,       i_d+301+(40*i) , j_d+300+(40*j) );
               
      switch(tile)
      case (0):      //zelaia
         put(f_lab, TILE_HUTSA,          i_d+301+(40*i) , j_d+300+(40*j) );
      end
      case (TILE_HORMA):   
         put(f_lab, TILE_HORMA,          i_d+301+(40*i) , j_d+300+(40*j) );
      end
      case (TILE_HASI):   
         put(f_lab, TILE_HUTSA,          i_d+301+(40*i) , j_d+300+(40*j) );
         put(f_lab, TILE_HASI,          i_d+301+(40*i) , j_d+300+(40*j) );
      end
      case (TILE_BUKA):    
         put(f_lab, TILE_HUTSA,          i_d+301+(40*i) , j_d+300+(40*j) );
         put(f_lab, TILE_BUKA,          i_d+301+(40*i) , j_d+300+(40*j) );
      end
      case (ITM_HONDARRA_100):   
         put(f_lab, TILE_HUTSA,          i_d+301+(40*i) , j_d+300+(40*j) );
         put(f_lab, ITM_HONDARRA_100,    i_d+301+(40*i) , j_d+300+(40*j) );
      end
      case (ITM_HONDARRA_15):   
         put(f_lab, TILE_HUTSA,          i_d+301+(40*i) , j_d+300+(40*j) );
         put(f_lab, ITM_HONDARRA_15,    i_d+301+(40*i) , j_d+300+(40*j) );
      end
      case (ITM_HONDARRA_5):   
         put(f_lab, TILE_HUTSA,          i_d+301+(40*i) , j_d+300+(40*j) );
              put(f_lab, ITM_HONDARRA_15,    i_d+301+(40*i) , j_d+300+(40*j) );
      end
      case (ITM_TXANPONA):
         put(f_lab, TILE_HUTSA,          i_d+301+(40*i) , j_d+300+(40*j) );
         put(f_lab, ITM_TXANPONA,       i_d+301+(40*i) , j_d+300+(40*j) );
      end
      case (ITM_ERAZTUNA):
         put(f_lab, TILE_HUTSA,          i_d+301+(40*i) , j_d+300+(40*j) );
         put(f_lab, ITM_ERAZTUNA,       i_d+301+(40*i) , j_d+300+(40*j) );
      end
      case (ITM_MAKILA):
         put(f_lab, TILE_HUTSA,         i_d+301+(40*i) , j_d+300+(40*j) );
         put(f_lab, ITM_MAKILA,          i_d+301+(40*i) , j_d+300+(40*j) );
      end
      case (ITM_BIZIA_100):
         put(f_lab, TILE_HUTSA,          i_d+301+(40*i) , j_d+300+(40*j) );
         put(f_lab, ITM_BIZIA_100,       i_d+301+(40*i) , j_d+300+(40*j) );
      end
      case (ITM_BIZIA_25):
         put(f_lab, TILE_HUTSA,          i_d+301+(40*i) , j_d+300+(40*j) );
         put(f_lab, ITM_BIZIA_25,       i_d+301+(40*i) , j_d+300+(40*j) );
      end
      case (ITM_BIZIA_10):
         put(f_lab, TILE_HUTSA,          i_d+301+(40*i) , j_d+300+(40*j) );
         put(f_lab, ITM_BIZIA_10,       i_d+301+(40*i) , j_d+300+(40*j) );
      end
      case (ITM_BIZIA_5):
         put(f_lab, TILE_HUTSA,          i_d+301+(40*i) , j_d+300+(40*j) );
         put(f_lab, ITM_BIZIA_5,       i_d+301+(40*i) , j_d+300+(40*j) );
      end
      case (ITM_RUNA_GORRIA):
         put(f_lab, TILE_HUTSA,          i_d+301+(40*i) , j_d+300+(40*j) );
         put(f_lab, ITM_RUNA_GORRIA,    i_d+301+(40*i) , j_d+300+(40*j) );
      end
      case (ITM_RUNA_BERDEA):
         put(f_lab, TILE_HUTSA,          i_d+301+(40*i) , j_d+300+(40*j) );
         put(f_lab, ITM_RUNA_BERDEA,    i_d+301+(40*i) , j_d+300+(40*j) );
      end
      case (ITM_RUNA_HORIA):
         put(f_lab, TILE_HUTSA,          i_d+301+(40*i) , j_d+300+(40*j) );
         put(f_lab, ITM_RUNA_HORIA,       i_d+301+(40*i) , j_d+300+(40*j) );
      end
      case (ITM_RUNA_URDINA):
         put(f_lab, TILE_HUTSA,          i_d+301+(40*i) , j_d+300+(40*j) );
         put(f_lab, ITM_RUNA_URDINA,    i_d+301+(40*i) , j_d+300+(40*j) );
      end
      case (ATE_HUTSA):
         put(f_lab, TILE_HUTSA,          i_d+301+(40*i) , j_d+300+(40*j) );
         put(f_lab, ATE_HUTSA,          i_d+301+(40*i) , j_d+300+(40*j) );
      end
      case (TILE_TRANPA):
         put(f_lab, TILE_HUTSA,          i_d+301+(40*i) , j_d+300+(40*j) );
         put(f_lab, TILE_TRANPA,       i_d+301+(40*i) , j_d+300+(40*j) );
      end
      case (ATE_GORRIA):
         put(f_lab, TILE_HUTSA,          i_d+301+(40*i) , j_d+300+(40*j) );
         put(f_lab, ATE_GORRIA,          i_d+301+(40*i) , j_d+300+(40*j) );
      end
      case (ATE_URDINA):
         put(f_lab, TILE_HUTSA,          i_d+301+(40*i) , j_d+300+(40*j) );
         put(f_lab, ATE_URDINA,          i_d+301+(40*i) , j_d+300+(40*j) );
      end
      case (ATE_BERDEA):
         put(f_lab, TILE_HUTSA,          i_d+301+(40*i) , j_d+300+(40*j) );
         put(f_lab, ATE_BERDEA,          i_d+301+(40*i) , j_d+300+(40*j) );
      end
      case (ATE_HORIA):
              put(f_lab, TILE_HUTSA,          i_d+301+(40*i) , j_d+300+(40*j) );
         put(f_lab, ATE_HORIA,          i_d+301+(40*i) , j_d+300+(40*j) );
      end
      end //switch
   end
end


[/code]

Adjunto dos capturas para mostrar la diferencia:
Title: Re: Posible bug en función put()
Post by: splinter_work on April 07, 2009, 04:03:39 PM
no se como decirte que ese codigo no me compila...

;)

No seas vago, poneme un codigo compilable (con los .imp o las lineas import), y con graficos. :)

Saludos.
Title: Re: Posible bug en función put()
Post by: izubiaurre on April 07, 2009, 04:58:46 PM
Tú lo que quieres es jugar un rato...  ;D

Hay va el link de descarga: http://cid-4ced6c2c72cff2ee.skydrive.live.com/self.aspx/Bennu/Laberinto.rar (http://cid-4ced6c2c72cff2ee.skydrive.live.com/self.aspx/Bennu/Laberinto.rar) No vale viciarse mucho
Title: Re: Posible bug en función put()
Post by: SplinterGU on April 07, 2009, 11:16:47 PM
no es el put lo que no funciona, nunca entra en esto, parece que hay un problema en la comparacion si usa constantes/variables...


for (i = 0 - VISION; i < VISION + 1; i++)
for (j = 0 - VISION; j < VISION + 1; j++)


voy a revisar a ver que es... gracias...
Title: Re: Posible bug en función put()
Post by: SplinterGU on April 07, 2009, 11:41:41 PM
ya encontre el problema...

se esta considerando como una condicion unsigned.

es un cambio que hice para que se tome como en C... pero bueno...
Title: Re: Posible bug en función put()
Post by: SplinterGU on April 08, 2009, 01:23:48 AM
fixeado...

por favor, pido que si a alguien le parece notar algun comporamiento extraño o supuestamente ilogico en la resolucion de las expresiones, por favor, ponga un mensaje y analizamos si es correcto o no...

gracias...
Title: Re: Posible bug en función put()
Post by: TYCO on April 08, 2009, 08:00:10 AM
Yo he notado esto:


Program test;
Begin
//Bennu-R34
    write_int(0,0,0,0,&x);
    x=-400;
    While (NOT key(_esc))
        If (x < 200+10) // NO SE CUMPLE ESTA CONDICION, EN VERSIONES ANTERIORES SI LO HACIA
            x+=5;
        Else
            x=-1;
        End
        Frame;
    End
End
Title: Re: Posible bug en función put()
Post by: SplinterGU on April 08, 2009, 10:05:44 AM
eso es lo que esta corregido