Fusion Makers
Faça login para usufruir de todos nossos recursos. Ainda não tem uma conta? Inscreva-se já!

Participe do fórum, é rápido e fácil

Fusion Makers
Faça login para usufruir de todos nossos recursos. Ainda não tem uma conta? Inscreva-se já!
Fusion Makers
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Procurar
 
 

Resultados por:
 


Rechercher Pesquisa avançada

Últimos assuntos
» Ideia: MMFMakers, do zero
por mediamaker Qua 26 maio 2021, 12:28

» [Flash] Haunt the house
por mediamaker Sáb 19 Set 2020, 16:47

» Como a criar passo a passo engine de Movimento Grid com colisão (tipo Bomberman) completo usadno extensão Array?
por mediamaker Sex 15 Set 2017, 14:19

» CF2.5 -> 26 reais na steam
por Matheus290 Ter 22 Dez 2015, 17:52

» Aplicação com Editbox não tá rodando online
por Matheus290 Sáb 19 Set 2015, 01:38

» A Guilda continua!!!! "Âncora Team" (novo nome)
por weliowl7 Qua 16 Set 2015, 01:52

» Sub-application e Inventario
por majorcorps Dom 23 Ago 2015, 13:11

» Efeito de string
por majorcorps Sáb 22 Ago 2015, 19:55

» [PC] Pitiri 1997
por Matheus290 Sáb 20 Jun 2015, 17:10

» Teclado virtual com Edit Box
por mediamaker Sáb 20 Jun 2015, 14:10

Quem está conectado?
20 usuários online :: 0 registrados, 0 invisíveis e 20 visitantes

Nenhum

[ Ver toda a lista ]


O recorde de usuários online foi de 251 em Ter 26 Out 2021, 22:21
Estatísticas
Temos 256 usuários registrados
O último membro registrado é Sitydistta

Os nossos membros postaram um total de 5268 mensagens em 575 assuntos

Usando Timers com Time X

2 participantes

Ir para baixo

Usando Timers com Time X Empty Usando Timers com Time X

Mensagem por Doriano Qui 18 Fev 2010, 18:08

Usando timers com Time X

Nivel: Básico

O que vamos aprender?
Criar Timers Independentes

O que vamos precisar?
Multimedia Fusion 2(Duh)
Time X(Duh²)
OBS: Não sei se ele ja vem como MMF2, então estou disponibilizando ele para download.


Introdução ao Time X
Eu tenho certeza que você ja teve/ainda tem problemas com uma coisa do Multimedia Fusion 2: o "The Timer"(raios caindo). E também tenho certeza que seu problema é: você botava "Every 1 second" e as vezes ele ia uma vez ou outra em 0,5 segundos ou coisa assim. Mas por que isso acontece? Crie um novo projeto no MMF2 ou abra um qualquer, e clique para testar. Ve o debugger? Clique no "+" e abra a pasta System. Você vai ver algo assim:
Usando Timers com Time X 01

Ve a linha "Time"? Esse é o Timer padrão do Multimedia Fusion 2.

"Ta... idai?"

Idai que quando você faz eventos de "every, time equal to", você está usando apenas UM timer, o mesmo, então todos os eventos seguirão "um padrão", deixando mais dificil de se usar...
O evento Every 1 Second vai se ativar a cada 1 segundo deste timer, não a cada um segundo que o evento foi ativado, então se você o ativa aos "2,99 segundos" ele não vai repetir ou ativar no "3,99", e sim no "3,00".
Isso é um problema, não? Porém, há uma alternativa, se chama Time X.

As funções do Timer X

Vamos colocar o Time X no frame. Caso você a tenha, você podera encontra-la com este icone:
Usando Timers com Time X 02

Ao colocar, abrira uma janela:
Usando Timers com Time X 03

Bem, há apenas uma opção, "Number of Timers", são quantos timers você quer criar para seu frame. E isso é uma vantagem, pois assim não precisa criar vários.
IMPORTANTE: O número de timers é números maiores que 0, porém os ID dos timers são baseados em 0, por exemplo: você põe 1 timer, ele é o ID 0, você põe 2, os ID serão 0 e 1.

Enfim, para o exemplo mais tarde, deixe 1 mesmo.

Agora vamos para o Event Editor.

Vamos primeiro aos eventos
Vou mostrar apenas os eventos importante para nosso objetivo: Timers Independentes

Usando Timers com Time X 04

Global Timers->Start Timer
Começa o timer de ID X.

Global Timers->Stop Timer
Para o timer de ID X, meio que um Pause Timer
ATENÇÃO: o timer não volta para 0

Global Timers->Toggle Timer
Pausa/Continua o timer de ID X.

Global Timers->Set Timer
Coloca o timer de ID X em um certo número

Global Timers->Reset Timer
Volta o timer de ID X para 0

Os outros são a mesma coisa, mas para TODOS os timers.

Agora vamos para as conditions importantes para nosso objetivo:
Usando Timers com Time X 05

Global Timers->Timer is counting?
Verifica se o timer de ID X está ativo.

Global Timers->Timer equal to...
Verifica se o timer de ID X é igual a Y milisegundos
Lembrando: 1000 milisegundos = 1 segundo

Global Timers->Timer different from...
Verifica se o timer de ID X não está igual a Y milisegundos

Global Timers->Timer greater than...
Verifica se o timer de ID X é maior que Y milisegundos

Global Timers->Time lower than...
Verifica se o timer de ID X é menor que Y milisegundos

Exemplo 1: "O teste"

Primeiro, vamos testar nosso Time X. Se você colocou no tutorial e está até agora, deixe, se não, coloque de novo(Time X com 1 Number of Timers)

Coloque 4 botões: Start, Stop, Pause/Continue, Reset
Coloque Mais um botão(nome Set) e um edit box(nome SetEdit)
Agora coloque uma string com suas preferencias.

Ficara algo assim:
Usando Timers com Time X 06

Agora vamos aos eventos:

Código:
**Conditions:
Always
**Events:
String->Change Alterable String->Str$(GetTimer("Time X", 0))
Isso ira fazer com que a string mostre sempre o valor em milisegundos do Timer de ID 0
O GetTimer pode ser encontrado em "Retrieve Data from an object -> Time X -> Get Global Timer" e no valor que ele pede, ponha o ID do timer.
E para quem não sabe, o "Str$( )" é para transformar números em texto.

Agora vamos fazer os controles:
Código:
**Conditions:
Start -> Button Clicked?
**Events:
Time X -> Global Timers -> Start Timer -> 0
Isso faz com que ao clicar no botão Start, começe o timer ID 0.

Código:
**Conditions:
Stop -> Button Clicked?
**Events:
Time X -> Global Timers -> Stop Timer -> 0
Ao clicar no botão Stop, pare o timer ID 0
ATENÇÃO: O timer não volta para 0 e pode ser continuado com toggle.

Código:
**Conditions:
Pause/Continue -> Button Clicked?
**Events:
Time X -> Global Timers -> Toggle Timer -> 0
Para/Continua o timer de ID 0

Código:
**Conditions:
Reset -> Button Clicked?
**Events:
Time X -> Global Timers -> Reset Timer -> 0
Reseta o timer de ID 0
ATENÇÃO: Ele NÃO PARA o timer.

Código:
**Conditions:
Set -> Button Clicked?
**Events:
Time X -> Global Timers -> Set Timer -> 0 -> Val( Edittext$("SetEdit"))
Ao clicar no botão SET, ele irá posicionar o timer em X milisegundos que estiver escrito no Edit Box.
E para quem não sabe, "Val( )" é para transformar texto númericos em números.

Agora que você terminou, você pode testar:
Usando Timers com Time X 07

Download do exemplo:
Exemplo 1 - "O Teste"


Exemplo 2: "A prova"

Pré Explicação:
Este exemplo irá mostrar que ele(o Time X) é independente do Timer do MMF2.
Ao clicar no botão start, os counters vao começar a se "adicionar", um com condition Every do MMF2, o outro pelos Miliseconds do Time X.
Você verá a diferença.

Crie um novo projeto ou frame, coloque um Time X com 1 timer, duas strings(timer e realtimer), 2 counters(CTimer e CRealTimer) e um botao Start:
Usando Timers com Time X 08

Vamos para o Event Editor:
Código:
**Conditions:
Always
**Events:
Timer(string) -> Change alterable string -> "Timer: "+str$(value("CTimer"))
RealTimer(string) -> Change alterable string -> "Time X: "+str$(value("CRealTimer"))
Isso faz com que os strings sempre fiquem como valor dos counters.

Código:
**Conditions:
The Timer(mmf2) -> every -> 1 second
Global Value A = 1
**Events:
CTimer -> Add to counter -> 1
Quando global value 1, a cada 1 segundo do timer do MMF2 irá adicionar 1 ao counter, contando assim os segundos do timer padrão.

Código:
**Conditions:
Always
Global Value A = 1
**Events:
CRealTimer -> Set Counter -> GetTimer("Time X", 0)/1000
Isso faz com que o o counter seje sempre o valor do Timer em segundos(/1000), contando assim os segundos do Time X.

Código:
**Conditions:
Start -> Button Clicked?
**Events:
Set Global Value A to 1
Time X -> Global Timers -> Start Timer -> 0
Ao clicar no botão, começa o Time X ID 0 e inicia o teste.

Agora podemos testar:

Usando Timers com Time X 09
Neste teste, o timer do MMF2 começou praticamente quando cliquei, porém o Time X marcou normal.

Usando Timers com Time X 10
Neste teste, o eu cliquei aos 2 segundos e meio de pausa, o timer do MMF2 marcou o primeiro segundo em 0,5 segundos, enquanto o Time X continua marcando certinho.

Download do exemplo:
Exemplo 2 - "A Prova"


Conclusão
Após os dois testes, podemos concluir que o Time X é uma opção muito melhor quando tratado de eventos com tempo, o único problema é se você [s]for burro[/s] tiver problemas com calculo de conversão, terá problemas com ele talvez, porque ele só marca valores em Milisegundos(1000 milisegundos = 1 segundo, para transformar divida o valor por 1000). O outro é que ele não tem "Every", o every que ele tem é com o timer padrão do MMF2 também, então você tera que fazer seu every do seu jeito.

Enfim, espero ter ajudado.

Obrigado por lerem, comentem e até a próxima \o
Doriano
Doriano
Usuário

Mensagens : 5
Data de inscrição : 18/02/2010

Ir para o topo Ir para baixo

Usando Timers com Time X Empty Re: Usando Timers com Time X

Mensagem por Eskyz Dom 23 Jan 2011, 18:22

Matéria longa o.o'. Nossa, sem palavras, parabéns =D
Aprovado, com certeza.
Eskyz
Eskyz
Administrador
Administrador

Mensagens : 360
Data de inscrição : 28/02/2010
Idade : 27
Localização : Brasil

http://www.mmfmakers.rg3.net/

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos