Ir para conteúdo
  • Cadastre-se

Lendo Mini Maps(O mais rapido possivel)


Posts Recomendados

Ola galera.

Tenho um projeto não terminado chamado Tibia GPS.

E eu desenvolvi um algorítimo de leitura dos arquivos de mapa do Tibia que eu considero um dos (se não o mais) rápido disponível por ai.

Geralmente quando descubro alguma coisa muito legal, eu não compartilho com ninguém, mas esse recurso vou abrir uma exceção.

Primeiramente devemos saber que os arquivos de mapa do Tibia são arquivos de mapa de bit sem cabeçalho de 256x256 pixels e 256 cores.

Sua estrutura está dividida em 3 partes.

A primeira corresponde ao mapa em si, e como é disso que eu quero falar não vou comentar das outras duas partes.

Arquivos de mapa de bit são arquivos de imagem onde uma quantidade de bits representam um pixel aceso no monitor.

Para saber quantos bits são necessários para acender cada pixel devemos de antemão saber qual a paleta de cor dessa imagem.

No nosso caso, estou afirmando que estamos usando uma bitmap de 256 cores isso significa que precisamos de 8 bits (um byte)

para acender um pixel em nosso monitor e o valor de cada byte representa uma cor em específico.

Saiba que em imagens de bitmap de 256 cores precisamos de uma paleta de cor para corresponder uma cor RGB

(Se vc quiser saber mais sobre as coisas que eu não expliquei o google ta ai para ajudar, estude...),

e que nos arquivos de minimapa do Tibia eles não colocaram a paleta.

Também como disse, o tamanho do arquivo em pixel é 256*256 ou seja, ele possui 256 pixel de altura e 256 pixel de largura e como cada pixel usa um byte

então o tamanho em bytes total da parte que precisamos do arquivo é (256x256)x1 = 65536 bytes.

O que precisamos então para ler esses arquivos é abrir o arquivo de minimapa e ler os 65536 primeiros bytes do arquivo.

Então dar um loop em cada byte e ir lendo byte a byte verificar o seu valor decimal e trocar pelo valor correspondente ao valor da paleta "QUE NÃO ESTÁ NO ARQUIVO"

Isso tudo torna uma tarefa demorada.

Como o windows possui recursos legais para se manipular imagens.

Usei eles e isso ajudou bastante.

CreateDIBitmap é a api que vou usar para blitar a imagem e numa velocidade animal.

Não vou explicar o codigo aqui, de uma lida no código e entenda.

O que vocês precisam saber é que usando essa api eu inicialmente no SELECT CASE do Form_Load ja falo que cada valor decimal do byte da imagem corresponde ao valor RGB citado

Ex.

Case 0:

                    bm_info.bmiColors(i).rgbRed = 0

                    bm_info.bmiColors(i).rgbGreen = 0

                    bm_info.bmiColors(i).rgbBlue = i

                    bm_info.bmiColors(i).rgbReserved = 0

Ai esta falando caso o valor do byte seja 0 entao a cor rgb que v precisa acender é essa ai...

E como CreateDIBitmap recebe o primeiro byte de um array e le ele até o final eu coloquei todos os bytes da imagem de minimapa num array.

Vejam o codigo e tentem entender...

Abraços

Obs.

No Arquivo tem um exe que é um pedaço do cliente do Tibia GPs para ele funcionar vc precisa ter o tibia instalado e ele abre todo o seu mapa, mas não me lembro se nessa versao ai ele abre o mapa direto da sua pasta de mapa do tibia e no outro é o fonte de como ler rápido a imagem.

Não vou falar como eu fiz para deixar a imagem do lado certo sendo que no arquivo de minimapa ela está do lado errado, quebre a cabeça e tente entender o arquivo.

Link do arquivo

http://www.easy-share.com/1914540347/exemplo.rar

Editado por join (veja o histórico de edições)

Donate

 

Link para o post
Compartilhar em outros sites

Opa... bem que bom... se vc der uma olhada... o codigo esta bem simples para se poder mudar para outra linguagem....

Abraços

Donate

 

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo