BMP writer e um script que criei com a funcao de escrever imagens do tipo BMP true color de 24 bits a partir do objeto Bitmap do RGSS. Mais detalhes visite:BMP writerO script nao utliza bibliotecas externas. Foi escrito totalmente em Ruby baseando-se no objeto Bitmap usado em RGSS/2. Mesmo sendo feito para ter um bom desempenho com relacao ao tempo de escrita de arquivo, para emprega-lo em jogos o tempo de escrita pode acabar sendo longo. Por exemplo, em uma maquina com Core 2 Duo o script levou 2 segundos para gravar um bitmap de 640x480, o que parece rapidos, mas pode ser um incmodo no meio de um jogo.Entao resolvi usar o metodo de escrita em um processo paralelo para nao ocorrer aquela pausa no jogo enquanto a gravacao do arquivo esta em andamento. O problema e que leva mais tempo para o arquivo ser salvo(seguindo mesmo exemplo anterior, levou 1 minuto e meio para a gravacao), isso significa que nao e possivel visualizar/utilizar o arquivo gerao enquanto nao terminar essa gravacao, e tambem caso o jogo seja fechado antes do termino o arquivo fica corrompido.Para criar nosso processo paralelo usaremos uma Thread. Basicamente uma thread e um bloco de codigo que e executado em paralelo com o programa principal. A tecnica nao e muito complicada nem ocupa muito espaco. Primeiro vamos carregar um Bitmap para usar na gravacao:data_system = load_data("Data/System.rxdata")aBitmap_obj = RPG::Cache.title(data_system.title_name)As linhas acima irao carregar a imagem de titulo na variavel aBitmap_obj.Agora vamos a Thread:thread_bmp = Thread.new(aBitmap_obj) dobeginfile = File.new('image.bmp','wb')file.bmp_write(aBitmap_obj)file.closerescueprint 'Erro ao gravar um bitmap'endenda linha:thread_bmp = Thread.new(aBitmap_obj) doCria nossa Thread. Observe que ja passamos como argumentoda Thread o Bitmap que criamos antes. O "do" define o nosso bloco de codigo que termina no ultimo "end".O "begin" e um outro bloco que criei dentro da threadso para poder usar o tratamentos de excecoes(erros) da clausula "rescue". Isso porque quando ocorre um erro dentro da Thread o Game.exe fecha sem nem um aviso. Entao se acontecer algum erro na Thread o que esta entre o recue e o end sera executado. No exemplo so cooquei uma mensagem, o que nao e muito correto, porque se aconteceu algum erro a thread para mas o programa continua sem tratar do problema.Entre o begin e o rescue deve entrar aquelas tres linhas que ja usavamos para gravar o arquivo antes.file = File.new('image.bmp','wb')file.bmp_write(aBitmap_obj)file.closeAbre o arquivo para leitura, escreve o BMP no arquivo e fecha o arquivo quando terminar a escrita.Basicamente e isso. Teste a tecnica e qualquer duvida fique a vontade. Post meio ou muito atrasado , mas tudo bem.Gostei muito de curtir o halloween.Muito legal ver como os americanos levam isso a serio. Teve varios bailes durante o mes de outubro e o que e melhor, com musica decente E SEM FUNK, ALELUIAAAAAAAAAAA!!! curti de monta e peguei um montao de doces, meu baldinho ta lotado, agora quero ver como vou levar de volta, porque so falta um mes e meio pra acabar e eu nao comi nem a metade deles!!! O.o Fiquei conhecida como princesa cigana, todos me aplaudiam com meu