Controlar a duração da imagem

3 Respostas   397 Visualizações

0 Membros e 1 Visitante estão vendo este tópico.

Enter

  • *
  • Posts: 219
  • Ouros: 133
  • The Game Has Changed
Tópico criado em: 04/02/2015 às 17:49 - Última modificação por Enter em 04/02/2015 às 19:27

Oi pessoal. Eu tenho o seguinte método:
Citar
def update
       
    enter_update #alias
 #métodos que vão desenhar a hud, eles vão apagar a hud quando for necessário o update, e desenha-la novamente
    draw_mp if mp_need_update?
    if Input.trigger?(Input::A)
      @mp.visible = true
    else
      @mp.visible = false
      end
 end

Na minha classe - que é uma Scene_Map é uma hud. E como vocês podem ver, quando é pressionado a tecla Shift a barra de MP torna-se visivel, fora dessa condição ela estará sempre oculta. Mas o problema é que ela aparece e some muito rápido - pois está dentro do método update e ela é uma classe Scene_Map < Scene_Base.

Tem alguma maneira de aumentar o tempo de duração dela ao pressionar shift, sem que o herói fique travado?

Ok, obgd, vlw.

Felipe@Pedro

  • *
  • Posts: 320
  • Ouros: 175
  • Tudo Passa!
Resposta 1: 04/02/2015 às 18:41

Acho que não entendi muito bem, logo não sou muito bom com scripts, mais se deja fazer um hud, pode fazer isso por eventos e com a suas próprias imagens, até achei um tuto legalzim para você http://depositodesistemasml.blogspot.com.br/2012/12/criando-uma-hud-em-4-passos.html espero ter ajudado.
''Você nunca sabe a força que tem, até que a sua única alternativa é ser forte.''

Raizen

  • Administrador
  • *
  • Posts: 3224
  • Ouros: 3192
  • Medalhas Vencedor do Protótipo Premiado Participante notável do evento "A Estação das Luzes do Norte" Vencedor CRM Awards - Melhor Scripter Vencedores das edições do Concurso Projeto Rickas!
Resposta 2: 04/02/2015 às 18:49 - Última modificação por Raizen em 04/02/2015 às 18:52

tem 2 modos de serem feitos, o primeiro é trocar o trigger pelo press,
Código: [Selecionar]
def update
       
    enter_update #alias
 #métodos que vão desenhar a hud, eles vão apagar a hud quando for necessário o update, e desenha-la novamente
    draw_mp if mp_need_update?
    if Input.press?(Input::A)
      @mp.visible = true
    else
      @mp.visible = false
      end
 end
Ai ao invés de ao clicar aparecer, ele ficará visível enquanto a tecla estiver sendo pressionada x)
Aliás com o press ficaria mais bonito assim até :D...

Código: [Selecionar]
def update
       
    enter_update #alias
 #métodos que vão desenhar a hud, eles vão apagar a hud quando for necessário o update, e desenha-la novamente
    draw_mp if mp_need_update?
    @mp.visible = Input.press?(Input::A)
 end

A segundo forma é colocar um timer assim
O update no RmVXA ocorre 60 vezes a cada segundo, logo se fizermos isso
Código: [Selecionar]
def update
       
    enter_update #alias
 #métodos que vão desenhar a hud, eles vão apagar a hud quando for necessário o update, e desenha-la novamente
    draw_mp if mp_need_update?
    if Input.trigger?(Input::A)
      @hud_count = 60
      @mp.visible = true
    else
       @hud_count <= 0 ? @mp.visible = false : @hud_count -= 1
      end
 end
agora basta iniciar o @hud_count no método initialize >_>

Tem outros modos de serem feito xD, mas dei o que considero o mais simples e talz para entender e tudo mais :P

Enter

  • *
  • Posts: 219
  • Ouros: 133
  • The Game Has Changed
Resposta 3: 04/02/2015 às 19:26

@Felipe@Pedro
Vlw brow. Mas tem que ser por scripts, pois o script vai ter outras funcionalidades que vão utilizar esse método.


@Raizen
Raizeeennnnn muito obgdooo, novamente. Seus pots sempre me ensinam muitas coisas.  Nessa caso, eu testei, e decidi escolher o press e ficou muito legal!!! perfeito!. Quando estava utilizando o  Input.trigger, ficava com um certo bug/delay ao apertar a tecla Shift, tipo aparecia mas NÃO na mesma hora... E isso era por que tinha que ficar segurando o Shift e o update que ocorre 60 vezes por segundo- que acabei de aprender com vc, mais essa. :wow: Agora entendi!

Vlwwwwwwwwwww