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.
sin ejemplo es un poco dificil...
lo acabo de probar y funciona perfecto.
pone algun ejemplo donde no funcione, gracias.
[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:
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.
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
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...
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...
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...
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
eso es lo que esta corregido