Panda3D/Manual/Intervalos: diferenças entre revisões

13 bytes adicionados ,  04h47min de 28 de novembro de 2009
sem resumo de edição
(Criou nova página com 'O sistema de intervalos do Panda3D é um mecanismo sofisticado para tocar ações configuradas. COm o uso de intervalor, você pode construir uma rede complexa de animaçõe...')
 
Sem resumo de edição
O sistema de intervalos do Panda3D é um mecanismo sofisticado para tocar ações configuradas. COmCom o uso de intervalor, você pode construir uma rede complexa de animações, efeitos de som, ou qualquer outra ação, e rodar o script em demanda
 
O núcleo do sistema é a classe intervalo. Ali existem diversos tipos de intervalos, que serão discutidos em detalhes nas próximas páginas, mas todos eles têm em comum a seguinte propriedade: cada intervalo representa uma ação (ou série de ações) que ocorrem em um intervalo de tempo finito e especifico(por isso o nome).
Em qualquer módulo Panda3D que usa intervalos, você precisa primeiro importar o módulo de intervalo:
 
from direct.interval.IntervalGlobal import *
 
Existem vários métodos úteis, os quais todos intervalos têm em comum.
Para começar a rodar um intervalo, use um dos seguintes:
 
interval.start()
interval.start(startT, endT, playRate)
interval.loop()
interval.loop(startT, endT, playRate)
 
Os três parâmetros são opcionais. Os parametros startTime e endTime definem o subset do intervalo á tocar; esse tempo deve ser dado em segundos, medidos do começo do intervalo. O playRate, como especificado, permite que você rode o intervalo mais rapido ou mais lento que o tempo real; o valor padrão é 1.0, para rodar em tempo real.
Normalmente, um intervalo tocará até o fim e terminará á si mesmo, mas você pode parar a execução do intervalo prematuramente:
 
interval.finish()
 
Isso terminará o intervalo e moverá o seu estado para o estado final, como se ele tivesse tocado até o fim. Esse é um ponto muito importante, e ele permite que você defina ações de limpeza críticas dentro do próprio internvalo, que garantidamente foram executadas no momento que o intervalo termina.
Você pode também temporariamente pausar e resumir um intervalo:
 
interval.pause()
interval.resume()
 
Se você pausar o intervalo e nunca resumir ou terminá-lo, as ações restantes do intervalo não serão executadas.
E você pode pular no tempo dentro deu m intervalo:
 
interval.setT(time)
 
Isso faz o intervalo mover-se para o tempo dado, em segundos desde á execução do intervalo. O intervalo executará todas as ações entre seu tempo atual e o tempo novo; não há modo de passar no tempo sem realizar ações de intervenção.
Finalmente, existem vários métodos úteis de questionamento:
 
interval.getDuration()
 
Retorna a duração do intervalo em segundos
 
interval.getT()
 
Retorna o tempo passado atual do intercalo, desde o começo do intervalo
 
interval.isPlaying()
 
Retorna verdadeiro se o intervalo estiver tocando, ou falso se ele não começou, já terminou ou foi explicitamente pausado ou terminado.
 
interval.isStopped()
 
retorna verdadeiro se o intervalo não começou, já foi tocado até o fim, ou foi explicitamente parado através de finish(). Isso não é bem o mesmo que interval.isPlaying(), já que ele não retorna verdadeiro para um intervalo pausado.
259

edições