Posible bug en función put()

Started by izubiaurre, April 07, 2009, 10:10:36 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

izubiaurre

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.


SplinterGU

sin ejemplo es un poco dificil...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

lo acabo de probar y funciona perfecto.

pone algun ejemplo donde no funcione, gracias.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

izubiaurre

[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:

splinter_work

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.

izubiaurre

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 No vale viciarse mucho

SplinterGU

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...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

#7
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...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

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...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

TYCO

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
Programador, Escritor/Guionista y Deportista.

Todo Modo Gráfico tiene por detrás una Línea de Comandos.

SnowCraft Remake (100%)
Rally Mortal (87%)

SplinterGU

Download Lastest BennuGD Release: http://www.bennugd.org/node/2