VGA – Tutorial 15 – Denthor

--==[ PARTE 15 ]==--

Para obter os programas mencionados neste tutorial, por favor baixe o zip com a versão antiga do tutorial, neste link.

Introdução

Olá, de novo. Como você pode ver, esse tutorial veio bem logo depois do outro. Isso é por duas razões… 1) O PCGPE ][ vai sair em breve, então achei que teria que me certificar de que teria mais que quatro treinamentos novos para ele, e 2) Eu geralmente atraso tanto entre os tutoriais, que achei que poderia compensar.

Há uma discussão rolando na Usenet, principalmente dizendo que os treinamentos, etc, deveriam ser escritos de maneira mais formal e não dessa maneira abichalhada e com linguagem familiar. Minhas “quotes” definitivamente estariam de fora 😉 Mas até que me paguem pra fazer isso (e parece que não tem ninguém que vá fazê-lo), eu vou continuar a escrever desse jeito. Minhas desculpas àqueles que não gostam disso, mas é de graça, o que você queria?

Esse treinamento é sobre plasmas, e o programa de amostra realmente ficou grande, principalmente devido ao fato que havia umas coisas em plasma que eu queria testar.

O conceito é muito simples, pelo menos para esse plasma, então você não deveria ter muitos problemas em entender… DEPOIS que você tiver lido o texto… pular direto para o código pode ser prejudicial ao seu cérebro.

Plasmas são um grande modo de impressionar seus amigos com suas formas estranhas. Eu estava a um passo de escrever um jogo onde o vilão tinha dois plasmas circulares ao invés de olhos… Tenho certeza de que você encontrará novas formas criativas e inventivas de fazer e usar plasmas.

Se você gostaria de me contactar, ou ao time, há muitos modos que pode fazê-lo: 1) Escrever uma mensagem para Grant Smith/Denthor/Asphyxia em email
privado na ASPHYXIA BBS.
2) Escrever para Denthor, Eze, Goth, Fubar ou Nobody na Connectix.
3) Escrever para:
Grant Smith
P.O.Box 270 Kloof
3640
Natal
África do Sul
4) Ligar para mim (Grant Smith) no número (031) 73 2129
(deixe uma mensagem se você ligar quando eu estiver na faculdade)
Ligue para +27-31-73-2129 se você está ligando de fora da África do Sul (a conta é sua ;-))
5) Escrever para denthor@beastie.cs.und.ac.za
6) Escrever para asphyxia@beastie.cs.und.ac.za para falar com todos nós de uma vez.

OBS1 : Se você é um representante de uma companhia ou BBS e quer que a ASPHYXIA faça um demo para você, mande um email pra mim; podemos discutir.
OBS2 : Se você fez/tentou fazer um demo, MANDE PARA MIM! Estamos nos sentindo muito solitários e queremos encontrar/ajudar/trocar código com outros grupos de demos. O que você tem a perder? Mande uma mensagem aqui e podemos ver como transferir. Nós realmente queremos ouvir de você.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Como os plasmas funcionam?

Vou cobrir apenas um tipo de plasma aqui… um plasma em tempo real, claro. Outros tipos de plasmas incluem uma figura estática com rotação da pallete…

Quando você olha de perto, esse método de plasmas em tempo real é meramente uma intersecção de quatro ondas de Cosseno. Nós pegamos nossa cor de um ponto particular dizendo:

  col := costbl[one]+costbl[two]+costbl[three]+costbl[four];

O macete é pegar os quatro índices daquela tabela de cossenos para criar algo que pareça bom. É assim que organizamos isso: Dois deles são os índices para o movimento vertical, e dois deles para o movimento horizontal.

Isso significa que mudando esses valores podemos nos mover ao longo do plasma. Para desenhar uma tela individual, passamos os valores dos quatro para outros quatro, de modo que não atrapalhamos os valores originais. Para cada pixel na linha adicionamos os primeiros dois índices, então mostramos o próximo pixel. Para cada linha para baixo, adicionamos os outros dois índices. Parece complexo o suficiente? Bom, porque é isso o que queremos: uma forma complexa na tela.

Alterando-se os quatro valores originais, podemos chegar a todo tipo de movimento legal e criar um ciclo no plasma. A razão pela qual usamos uma tabela de cosseno é a seguinte: uma tabela de cosseno tem uma curva legal nos valores dos números… quando você coloca dois ou mais juntos, é possível ter desenhos circulares… círculos são difíceis de fazer num computador, então isso faz de modo mais fácil…

OK, agora você pode dar uma olhada no arquivo fonte, tudo o que eu faço é colocar o que eu disse acima, em prática. Eu adicionei uma coisinha ou outra, porém…

Background : é apena um array grande, com os valores no array sendo adicionados ao plasma naquele pixel.

Psychadelic : isso cria um ciclo por cerca de 7000 cores ao invés de apenas rodar pelos 256 básicos.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Fading esperto

Você vai notar quando o programa demo faz fade in e out, que as cores todas chegam ao seu “destino” ao mesmo tempo… em outras palavras, elas não incrementam todas de um em um até que atinjam a cor certa e então param. Quando se faz desse jeito, o fading não parece profissional.

Aqui está como fazemos um step-crossfade.

Cada valor de r, g e b pode ser entre 0 e 64. Tenha a pallete que queremos usar na variável bob e a pallete temporária em bob2. Para cada passo, de 0 a 63, faça o seguinte:

 bob2[loop1].r:=bob[loop1].r*step/64;

Isso quer dizer que se você estiver no meio do caminho do crossfade (passo 32) e o valor de vermelho que queremos seja 16, nossa equação se parece com isso:

r:=16*32/64
 r=8

Que é metade do caminho para onde queremos que ele vá. Isso significa que todas as cores vão fazer fade in/out na mesma proporção… e parecer melhor.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Rodando a pallette

Acho que já fiz isso antes… mas aqui está…

mover cor 0 para temp

mover cor 1 para cor 0
mover cor 2 para cor 1
mover cor 3 para cor 2
e assim em diante até a cor 255

mover temp para a cor 255

E sua paleta está rodando. Fácil, né? Verifique de novo o tutorial 2 para mais informação sobre rotação de paleta.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Fechando

O arquivo de texto foi meio curto dessa vez, mas isso é porque o arquivo de amostra é autoexplicativo. O arquivo pode ser acelerado, no entanto, e é claro, você pode colocar certas coisas que mudarão totalmente a aparência do plasma.

Como sempre, estou à procura de mais ideias para tutoriais futuros, se você tiver alguma, mande um email!

Sem quote hoje, essa LAN não me encoraja nenhum pensamento criativo 😉 Contudo, haverá quotes no futuro, já que fiquei sabendo que tem gente que gosta delas. Até Pipsy disse isso enquanto estávamos brincando de ctrl-alt-del (jogo para dois participantes, um tem que apertar ctrl-alt enquanto o outro aperta del, e a pessoa apertando o del tem que ser rápida de modo que o computador não dê boot. Se o computador reiniciar, a pessoa que apertou o crl e o alt ganhou. Eu achei que estava indo mal quando estava jogando contra a Pipsy, até que descobri que o computador tinha travado mesmo ;-))

Tchauuuuu….

  • Denthor
    14:11
    16-9-94
  • Krull

A Nova Krull's HomePage