Jogador maluco, problemático, olho parado.
- Juntou-se
- 21 de Julho de 2015
- Postagens
- 570
- Soluções
- 3
- Bravecoins
- 2.833
- Área
- Programação
- Motor de jogo
- RPG Maker 2003
Efeito Lanterna na Tela
Autor: Dr.XGB
Plataforma: RPG Maker 2000
Dificuldade: Intermediário
Outro Motor: Destiny Script
Este sistema já é muito utilizado quando você quer fazer uma dungeon ou uma sala escura onde o herói tem que possuir uma lanterna para conseguir explorar aquele local.
A diferença é que eu montei uma demonstração onde você pode fazê-lo com a linguagem do Destiny Script, sem precisar criar imagens e importá-las para o jogo, ou seja, você cria a picture dentro do próprio jogo.
Além disso, gostaria de deixar pra vocês uma fórmula bem bacana para você desenhar um círculo através do Destiny. Dê uma olhada nisso:
A diferença é que eu montei uma demonstração onde você pode fazê-lo com a linguagem do Destiny Script, sem precisar criar imagens e importá-las para o jogo, ou seja, você cria a picture dentro do próprio jogo.
Além disso, gostaria de deixar pra vocês uma fórmula bem bacana para você desenhar um círculo através do Destiny. Dê uma olhada nisso:
Como o procedimento de desenhar por pixel é muito lento, decidi fazer esta ação uma vez no início do jogo e salvando a imagem criada em uma pasta qualquer; fazendo com que, então, possa ser carregada a qualquer momento através do Destiny.
Lembrando que em f[2], pegamos o valor atual de f[1] e calculamos o Cosseno de f[1], multiplicando pela circunferência que você que desejar, e somando pela área da picture onde você quer que o círculo seja desenhado. O mesmo serve para f[3], porém calculando o Seno de f[1], acrescentando o restante da fórmula. Usamos a v[1] para determinar essa circunferência, já que o loop "for" pega um valor inicial no primeiro parâmetro e só termina quando não estiver mais de acordo com a condição feita no segundo parâmetro; enquanto isso ele realiza a operação do terceiro parâmetro, que é ficar somando por 0.5 até chegar 360 (uma volta completa em Graus (constante DEG).
Para calcular circunferência, você pode usar as 3 unidades de medidas angulares do SI (Sistema Internacional de Unidades): Grau, Radiano e Grado. E também pode utilizar a unidade de medida usada especialmente para o RPG Maker. Veja a tabela abaixo e veja que cada uma das unidades tem o seu limite de acordo a uma volta completa:
Lembrando que em f[2], pegamos o valor atual de f[1] e calculamos o Cosseno de f[1], multiplicando pela circunferência que você que desejar, e somando pela área da picture onde você quer que o círculo seja desenhado. O mesmo serve para f[3], porém calculando o Seno de f[1], acrescentando o restante da fórmula. Usamos a v[1] para determinar essa circunferência, já que o loop "for" pega um valor inicial no primeiro parâmetro e só termina quando não estiver mais de acordo com a condição feita no segundo parâmetro; enquanto isso ele realiza a operação do terceiro parâmetro, que é ficar somando por 0.5 até chegar 360 (uma volta completa em Graus (constante DEG).
Para calcular circunferência, você pode usar as 3 unidades de medidas angulares do SI (Sistema Internacional de Unidades): Grau, Radiano e Grado. E também pode utilizar a unidade de medida usada especialmente para o RPG Maker. Veja a tabela abaixo e veja que cada uma das unidades tem o seu limite de acordo a uma volta completa:
Unidade | Constante | Volta Completa |
Grau | DEG | 360 |
Radiano | RAD | 2? |
Grado | GRAD | 400 |
RPG Maker | RPG | 255 |
Para usar o "?" no Destiny Script, usamos Math.Pi.
[box class=catbg4]Download da Demonstração[/box]
Ao baixar a Demo você entenderá melhor como o sistema ao todo funciona. Porém achei necessário explicar como calcular ângulos para que você possa desenhar círculos, meia-lua, Bat-Sinal, enfim...
Espero que tenham gostado e que tenham sido muito útil para estudo ou para desenvolver outros sistemas baseando-se nestes cálculos.
Até mais!