Forums » RPG MAKER 2K e 2003

[Destiny Script] Efeito Lanterna na Tela

    • 683 posts
    14 de maio de 2015 22:42:09 ART

    Efeito Lanterna na Tela


    Imagem Postada

     

    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:



    $
    for(v[1] = 0; v[1] < tamanho do círculo; v[1]++)
      for(f[1] = 0.0; f[1] < 360.0; f[1] += 0.5)
        f[2] = Math.Cos(f[1],DEG)*circunferência desejada+coordenada X a ser desenhada;
        f[3] = Math.Sin(f[1],DEG)*circunferência desejada+coordenada a Y ser desenhada;
        Picture[1].AuroraSheet.Pixel = Index da cor de acordo com a paleta da picture;
      next;
    next;



    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:



    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.

    $
    f[1] = 2 * Math.Pi; // 1 volta completa em Radianos



     

     

    Download da Demonstração

     


    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, sinal de luz do Batman, 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!