domingo, 12 de junho de 2011

BLOG OFICIALMENTE FECHADO

É isso aí pessoal, o blog está oficialmente fechandoa as portas. Espero que o conteúdo tenha ajudado bastante gente e que continue ajudando, pois o blog continuará no ar, só não terá mais novidades: nada de posts, novo layout, etc, etc, etc. XD

Abraços do "falecido" ZC. XD

domingo, 27 de março de 2011

Blog Aranha de Programa

Hoje o blog Aranha de Programa está abrindo as portas para os estudantes e entusiastas do mundo da eletrônica e da informática. Acessem:




http://aranhadeprograma.blogspot.com/

Trata-se de um blog de dois estudantes formados em eletrônica e que resolveram compartilhar o conhecimento, divulgar suas capacidades profissionais e se aprimorarem nessas áreas enquanto escrevem.

Os escritores são:

Sidnei Pereira, formado como Técnico em Eletroeletrônica na escola ITB Brasílio Flores de azevedo, e estudante de Análise de Sistemas e Tecnologia da Informação na FATEC Carapicuíba.

Marcus Vinicius, também formado como Técnico em Eletroeletrônica na escola ITB Brasílio Flores de azevedo.

Ajude a divulgá-los:




sexta-feira, 4 de fevereiro de 2011

RTP Extractor

RTP Extractor
por zecomeia

Introdução

Extrai para o seu projeto os arquivos do RTP que estão em uso no projeto. Isso evita ter que copiar o RTP inteiro para o seu projeto na hora da criação do disco de jogo, ou que o jogador precise ter o RTP instalado para poder jogar.

Características


  • Não sobre escreve arquivo de mesmo nome que exista na pasta do projeto.
  • O processo é rápido e pode ser acompanhado por uma barra de progresso.
  • Um arquivo(extract_log.txt) listando todos os arquivos copiados e seus respectivos tamanhos é gerado na pasta raiz do projeto.

Histórico

04/02/2011 v1.0.0
- Lançado o script

05/02/2011 v1.0.1
- Leitura do nome da DLL do projeto consertado
- Bug quando há mais de dois comandos "mover evento" na mesma página consertado


Como Usar

  • cole acima de Main
  • salve e execute o projeto
  • espere o processo de extração terminar
  • agora você já pode retirar o script do projeto

*O ideal é usá-lo antes de criar o disco de jogo, ou seja, quando o projeto estiver pronto para jogar, porque daí, teoricamente, nesse ponto o projeto não precisa mais ser alterado.

Script




Créditos e Agradecimentos
  • Feito por zecomeia
  • vgvgf pela função para obter o path do RTP(retirado de seu script Aleworks Library)
  • Farenheight pelos métodos #justname e #extension(editei) da classe File
  • aos criadores do RMTool(programa que faz algo do tipo no RM2k) pela ideia
  • Rafidelis pelo código melhorado para obter o nome da dll do jogo
  • PLM por repotar bugs.

terça-feira, 11 de janeiro de 2011

Usando o BMP writer num processor paralelo

BMP writer é um script que criei com a função de escrever imagens do tipo BMP true color de 24 bits a partir do objeto Bitmap do RGSS. Mais detalhes visite:

BMP writer

O script não 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 relação ao tempo de escrita de arquivo, para empregá-lo em jogos o tempo de escrita pode acabar sendo longo. Por exemplo, em uma máquina com Core 2 Duo o script levou 2 segundos para gravar um bitmap de 640x480, o que parece rápidos, mas pode ser um incmodo no meio de um jogo.

Então resolvi usar o metodo de escrita em um processo paralelo para não ocorrer aquela pausa no jogo enquanto a gravação do arquivo está em andamento. O problema é que leva mais tempo para o arquivo ser salvo(seguindo mesmo exemplo anterior, levou 1 minuto e meio para a gravação), isso significa que não é possível visualizar/utilizar o arquivo gerao enquanto não terminar essa gravação, e também caso o jogo seja fechado antes do término o arquivo fica corrompido.

Para criar nosso processo paralelo usaremos uma Thread. Basicamente uma thread é um bloco de código que é executado em paralelo com o programa principal. A técnica não é muito complicada nem ocupa muito espaço. Primeiro vamos carregar um Bitmap para usar na gravação:

data_system = load_data("Data/System.rxdata")
aBitmap_obj = RPG::Cache.title(data_system.title_name)


As linhas acima irão carregar a imagem de título na variável aBitmap_obj.

Agora vamos à Thread:

thread_bmp = Thread.new(aBitmap_obj) do
begin
file = File.new('image.bmp','wb')
file.bmp_write(aBitmap_obj)
file.close
rescue
print 'Erro ao gravar um bitmap'
end
end


a linha:

thread_bmp = Thread.new(aBitmap_obj) do

Cria nossa Thread. Observe que já passamos como argumentoda Thread o Bitmap que criamos antes. O "do" define o nosso bloco de código que termina no último "end".

O "begin" é um outro bloco que criei dentro da threadsó para poder usar o tratamentos de exceções(erros) da clausula "rescue". Isso porque quando ocorre um erro dentro da Thread o Game.exe fecha sem nem um aviso. Então se acontecer algum erro na Thread o que está entre o recue e o end será executado. No exemplo só cooquei uma mensagem, o que não é 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 três linhas que já usavamos para gravar o arquivo antes.

file = File.new('image.bmp','wb')
file.bmp_write(aBitmap_obj)
file.close


Abre o arquivo para leitura, escreve o BMP no arquivo e fecha o arquivo quando terminar a escrita.

Basicamente é isso. Teste a técnica e qualquer dúvida fique a vontade.

sexta-feira, 7 de janeiro de 2011

Rubular - Editor de expresões regulares para Ruby

O Rubular é um editor de expressões regulares para ruby. Simples e prático, com ele fica muito mais fácil e rápido na hora de estudar e trabalhar as RegExp.
O programa funciona na própria página do site, então não precisa baixar nada. Basta escrever a RegExp no campo reservado, adicionar alguma opção à ela caso necessite e então escrever alguma coisa no campo chamado "test string". Esse campo último campo servirá para testar sua RegExp, o programa irá procurar ocorrências do padrão e se encontrar irá destacar as partes do texto que batem.


http://rubular.com/