Suporte no desenvolvimento de jogos


    Lampião Customizável

    ' Wwebr
    ' Wwebr
    Membro Ativo
    Membro Ativo

    Medalhas : Lampião Customizável Trophy11
    Mensagens : 350
    Créditos : 72

    Lampião Customizável Empty Lampião Customizável

    Mensagem por ' Wwebr em Sab Nov 20, 2010 7:48 pm

    Lampião Customizável

    Breve Descrição:
    O script cria uma zona de luz em volta do personagem enquanto o restante do mapa permanece escuro, sem o uso de imagens adicionais. Para ativar/desativar o efeito usa-se uma switch. A luz do lampião é totalmente customizável, além da escuridão em volta. Contudo, quanto mais realista e quanto maior o raio do efeito de luz maior será o tempo de transição entre os mapas.

    Demo:
    Creio que desnecessária.

    Screen de Exemplo:
    Lampião Customizável Ss2
    Lampião Customizável Ss

    Versão 1.0:
    Código:
    #===============================================================
    # Lampião Customizável
    # Autor: Madajuv
    # Agradecimentos:
    # Ao autor de Nakiri Dungeon, pelo código para desenhar círculos.
    #===============================================================
    # O script faz com que uma pequena área em volta do personagem
    # fique iluminada, enquanto o restante fica escuro.
    # Não precisa de imagens.
    #===============================================================
    # Edite Aqui:
    #---------------------------------------------------------------
    module Mada
      # O raio da circunferência de luz que o lampião cria
      # Quanto maior, mais demora a transição entre mapas
      LAMP_Raio_max = 150
      # A opacidade da escuridão fora da luz
      #(0 = Muito claro/255 = Muito escuro)
      LAMP_Escuridao = 250
      # Quantidade de camadas de transição entre a luz do lampião e a escuridão
      # Quanto mais, mais demora a transição entre mapas
      LAMP_Camadas = 5
      # "Distância" de opacidade entre a luz do lampião e
      # a escuridão, quanto mais próximo do zero melhor o efeito.
      LAMP_Dist = 0
      # Switch que ativa o efeito.
      LAMP_Switch = 1
    end
    #---------------------------------------------------------------
    # Fim da edição
    #===============================================================
    class Bitmap
      # Método para desenhar círculos,
      # crédito ao autor de Nakiri Dungeon
      def draw_circle(x, y, r, color)
        for ax in 0..r
          for ay in 0..r
            set_pixel(x + ax, y + ay, color) if Math.hypot((r/2) - ax, (r/2) - ay) < r/2
          end
        end
      end
    end
    class Spriteset_Map
      alias mada_lamp initialize
      def initialize
        if Mada::LAMP_Raio_max > 400
          p 'O raio escolhido para o lampião é muito grande.'
          $scene = nil
          mada_lamp
          return
        end
        @viewport2 = Viewport.new(0, 0, 640, 480)
        @viewport2.z = 200
        @lampiao = Plane.new(@viewport2)
        @lampiao.bitmap = Bitmap.new(960, 720)
        @lampiao.bitmap.fill_rect(Rect.new(0, 0, 960, 720), Color.new(0,0,0,Mada::LAMP_Escuridao))
        aux = Mada::LAMP_Camadas + 1
        aux1 = Mada::LAMP_Raio_max.to_f/aux.to_f
        aux2 = aux1/2.0
        aux3 = Mada::LAMP_Escuridao-Mada::LAMP_Dist
        for i in 0..aux
          @lampiao.bitmap.draw_circle(480.0+i.to_f*aux2, 360+i.to_f*aux2,
          Mada::LAMP_Raio_max.to_f-i.to_f*aux1, Color.new(0,0,0,aux3-i*aux1))
        end
        aux4 = (Mada::LAMP_Raio_max-100).to_f/2.0
        @lamp_x = 530 + aux4
        @lamp_y = 430 + aux4
        @lampiao.ox = @lamp_x - $game_player.screen_x
        @lampiao.oy = @lamp_y - $game_player.screen_y
        mada_lamp
      end
      alias mada_lamp_d dispose
      def dispose
        unless Mada::LAMP_Raio_max > 400
          @lampiao.bitmap.dispose
          @lampiao.dispose
        end
        mada_lamp_d
      end
      alias mada_t update
      def update
        @lampiao.visible = $game_switches[Mada::LAMP_Switch]
        if $game_player.moving?
          @lampiao.ox = @lamp_x - $game_player.screen_x
          @lampiao.oy = @lamp_y - $game_player.screen_y
        end
        mada_t
      end
    end

    Versão 2.0:
    Código:
    #===============================================================
    # Lampião Customizável 2.0
    # Autor: Madajuv
    # Agradecimentos:
    # Ao autor de Nakiri Dungeon, pelo código para desenhar círculos.
    #===============================================================
    # Versão 1.0:
    #---------------------------------------------------------------
    # O script faz com que uma pequena área em volta do personagem
    # fique iluminada, enquanto o restante fica escuro.
    # Não precisa de imagens.
    #---------------------------------------------------------------
    # Versão 2.0
    #---------------------------------------------------------------
    # A imagem do lampião é criada antes do título e somente uma vez,
    # há uma opção de colocar uma tela de loading.
    #===============================================================
    # Edite Aqui:
    #---------------------------------------------------------------
    module Mada
      # O raio da circunferência de luz que o lampião cria
      # Quanto maior, mais demora o loading
      LAMP_Raio_max = 300
      # A opacidade da escuridão fora da luz
      #(0 = Muito claro/255 = Muito escuro)
      LAMP_Escuridao = 250
      # Quantidade de camadas de transição entre a luz do lampião e a escuridão
      # Quanto mais, mais demora o loading
      LAMP_Camadas = 50
      # "Distância" de opacidade entre a luz do lampião e
      # a escuridão, quanto mais próximo do zero melhor o efeito.
      LAMP_Dist = 0
      # Switch que ativa o efeito.
      LAMP_Switch = 1
      # Mostrar tela de load?
      LAMP_Load = true # true = sim / false = não
      # Mensagem da barra de load.
      LAMP_Mensa = 'Colocando óleo no lampião... Aguarde.'
    end
    #---------------------------------------------------------------
    # Fim da edição
    #===============================================================
    class Bitmap
      # Método para desenhar círculos,
      # crédito ao autor de Nakiri Dungeon
      def draw_circle(x, y, r, color)
        for ax in 0..r
          for ay in 0..r
            set_pixel(x + ax, y + ay, color) if Math.hypot((r/2) - ax, (r/2) - ay) < r/2
          end
        end
      end
    end
    def desenhar_lamp
      @load_bar_fundo = Sprite.new
      @load_bar_fundo.bitmap = Bitmap.new(480, 64)
      @load_bar_fundo.bitmap.fill_rect(Rect.new(0, 0, 480, 64), Color.new(150,150,150))
      @load_bar_fundo.bitmap.fill_rect(Rect.new(1, 1, 478, 62), Color.new(100,100,100))
      @load_bar = Sprite.new
      @load_bar.bitmap = Bitmap.new(478, 62)
      @load_bar_fundo.x = 80; @load_bar.x = 81
      @load_bar_fundo.y = 208; @load_bar.y = 209
      $lamp_d = Bitmap.new(960, 720)
      $lamp_d.fill_rect(Rect.new(0, 0, 960, 720), Color.new(0,0,0,Mada::LAMP_Escuridao))
      aux = Mada::LAMP_Camadas + 1
      aux1 = Mada::LAMP_Raio_max.to_f/aux.to_f
      aux2 = aux1/2.0
      aux3 = Mada::LAMP_Escuridao-Mada::LAMP_Dist
      if Mada::LAMP_Load
        for i in 0..aux
          @load_bar.bitmap.clear
          @load_bar.bitmap.fill_rect(Rect.new(0, 0, 478*i/aux, 62), Color.new(255-(i*255/aux),(i*255/aux),0))
          @load_bar.bitmap.draw_text(@load_bar.bitmap.rect, Mada::LAMP_Mensa, 1)
          $lamp_d.draw_circle(480.0+i.to_f*aux2, 360+i.to_f*aux2,
          Mada::LAMP_Raio_max.to_f-i.to_f*aux1, Color.new(0,0,0,aux3-i*aux1))
          Graphics.update
        end
      else
        for i in 0..aux
          $lamp_d.draw_circle(480.0+i.to_f*aux2, 360+i.to_f*aux2,
          Mada::LAMP_Raio_max.to_f-i.to_f*aux1, Color.new(0,0,0,aux3-i*aux1))
        end
      end
      @load_bar.bitmap.dispose
      @load_bar.dispose
      @load_bar_fundo.bitmap.dispose
      @load_bar.dispose
    end
    desenhar_lamp
    class Spriteset_Map
      alias mada_lamp initialize
      def initialize
        if Mada::LAMP_Raio_max > 400
          p 'O raio escolhido para o lampião é muito grande.'
          $scene = nil
          mada_lamp
          return
        end
        @viewport2 = Viewport.new(0, 0, 640, 480)
        @viewport2.z = 200
        @lampiao = Plane.new(@viewport2)
        @lampiao.bitmap = $lamp_d
        @lamp_x = 530 + (Mada::LAMP_Raio_max-100).to_f/2.0
        @lamp_y = 430 + (Mada::LAMP_Raio_max-100).to_f/2.0
        @lampiao.ox = @lamp_x - $game_player.screen_x
        @lampiao.oy = @lamp_y - $game_player.screen_y
        mada_lamp
      end
      alias mada_lamp_d dispose
      def dispose
        unless Mada::LAMP_Raio_max > 400
          @lampiao.dispose
        end
        mada_lamp_d
      end
      alias mada_t update
      def update
        @lampiao.visible = $game_switches[Mada::LAMP_Switch]
        if $game_player.moving?
          @lampiao.ox = @lamp_x - $game_player.screen_x
          @lampiao.oy = @lamp_y - $game_player.screen_y
        end
        mada_t
      end
    end

    Créditos:
    Madajuv - Por Criar
    WweBR - Por disponibilizar


    _________________
    Lampião Customizável 2ppa821

    ---

    - Baía de Barbalian -

    Lista Negra:
    Preto - Foda-se, morre!
    Vermelho - Morre também!
    Laranja - Se esfaqueia, se enforca, não importa. Só se mata!

    Quem começou com essa babaquisse!
    Quem apoia essa babaquisse!
    Quem gosta dessa babaquisse!


    Devilzcore
    Devilzcore
    Ocasional
    Ocasional

    Mensagens : 207
    Créditos : 83

    Lampião Customizável Empty Re: Lampião Customizável

    Mensagem por Devilzcore em Sab Nov 20, 2010 7:54 pm

    gostei Very Happy vou ver se da para conveter para VX xD
    Devilzcore
    Devilzcore
    Ocasional
    Ocasional

    Mensagens : 207
    Créditos : 83

    Lampião Customizável Empty Re: Lampião Customizável

    Mensagem por Devilzcore em Sab Nov 20, 2010 7:54 pm

    Ah esqueci do Creditos ^^ + 1 credito vlw xD
    Theu Souto
    Theu Souto
    Iniciante
    Iniciante

    Mensagens : 68
    Créditos : 13

    Lampião Customizável Empty Re: Lampião Customizável

    Mensagem por Theu Souto em Sab Nov 20, 2010 9:56 pm

    Valeu Wwe, muito bom o script
    xD
    1 creed
    ' Wwebr
    ' Wwebr
    Membro Ativo
    Membro Ativo

    Medalhas : Lampião Customizável Trophy11
    Mensagens : 350
    Créditos : 72

    Lampião Customizável Empty Re: Lampião Customizável

    Mensagem por ' Wwebr em Sab Nov 20, 2010 11:01 pm

    Valeu galerinha pelos creds *-*

    Fallowz ~//


    _________________
    Lampião Customizável 2ppa821

    ---

    - Baía de Barbalian -

    Lista Negra:
    Preto - Foda-se, morre!
    Vermelho - Morre também!
    Laranja - Se esfaqueia, se enforca, não importa. Só se mata!

    Quem começou com essa babaquisse!
    Quem apoia essa babaquisse!
    Quem gosta dessa babaquisse!


    LemonSpark36555
    LemonSpark36555
    Membro Ativo
    Membro Ativo

    Mensagens : 271
    Créditos : 56

    Lampião Customizável Empty Re: Lampião Customizável

    Mensagem por LemonSpark36555 em Dom Nov 21, 2010 12:35 pm

    faze um labirinto todo escuro e enfia esse lampião éh foda (e dificil)


    _________________

    Meu Fã? Use ! Lampião Customizável 364988687
    Lampião Customizável Fanbarjp

    Lampião Customizável Fanbard

    Não gaste seu tempo vivendo as vidas dos outros. Steven Jobs


    Visite a Minha Fábrica de Desing!


    Lampião Customizável Singj
    ' Wwebr
    ' Wwebr
    Membro Ativo
    Membro Ativo

    Medalhas : Lampião Customizável Trophy11
    Mensagens : 350
    Créditos : 72

    Lampião Customizável Empty Re: Lampião Customizável

    Mensagem por ' Wwebr em Dom Nov 21, 2010 3:57 pm

    Luigi Perillo X escreveu:faze um labirinto todo escuro e enfia esse lampião éh foda (e dificil)
    Na verdade a idéia é essa....
    Labirintos, trilhas escuras, cavernas, florestas e cemitérios a noite XD ia ficar muito loko Razz

    Fallowz ~//


    _________________
    Lampião Customizável 2ppa821

    ---

    - Baía de Barbalian -

    Lista Negra:
    Preto - Foda-se, morre!
    Vermelho - Morre também!
    Laranja - Se esfaqueia, se enforca, não importa. Só se mata!

    Quem começou com essa babaquisse!
    Quem apoia essa babaquisse!
    Quem gosta dessa babaquisse!


    DeaN
    DeaN
    Colaborador
    Colaborador

    Mensagens : 1245
    Créditos : 48

    Lampião Customizável Empty Re: Lampião Customizável

    Mensagem por DeaN em Seg Nov 22, 2010 10:35 am

    Muito bom Gostei mais do segundo.
    1+credito


    _________________
    Dean, Programador Geral :)

    Contato: Skype:matucarvalho e Facebook
    The Enze - Vulzt

    Shield Block
    Anti-Cheat para jogos de FPS, agora vou adaptar para jogos de RPG principalmente para o RMXP.
    www.shieldblock.net
    fb.com/shieldblockoficial

    Lampião Customizável MiB0H

    Conteúdo patrocinado

    Lampião Customizável Empty Re: Lampião Customizável

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Ter Jan 28, 2020 6:04 pm