[pedido]engine de controle temporal

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

[pedido]engine de controle temporal

Mensagem por William Lima em Dom 23 Jan 2011, 23:47

alguem poderia interpretar essa descrição aqui sobre controle temporal ?
Spoiler:
Bom, eu conheço uma maneira de fazer isso, é um pouco confuso, mas funciona perfeitamente.

É um princípio com arrays, eu pensei até em fazer uma extensão baseada nisso, pode servir como 'reverse' ou como 'replay', porém abandonei a idéia, seu funcionamento é assim, você grava uma quantidade de ações em uma array, cada 'número' da array é um 'frame', nesse caso varia de objeto para objeto, de jogo pra jogo e por ai vai.

Por exemplo, supondo que seu jogo seja bem simples, só tem movimentação pelas setas (varia apenas a posição x e y) e você queira fazer um controle de tempo com isso, como é basicamente 2 variáveis, você usa apenas:

a+=1
rev_x[a]=x
rev_y[a]=y

Claro que isso condiciona o funcionamento, se ficar muito tempo gravando, ocupará muito espaço na memória e consequentemente ocasionará um 'lag', a solução é 'limpar' os primeiros frames, de modo que somente as últimas, por exemplo, 200 posições fiquem armazenadas, é muito simples fazer isso, basta só descartar as 200 primeiras quando chegar em 400 e começar a regravar do início: a=1.

Para reproduzir, tem 2 possibilidades: 'Voltar no tempo', que resumidamente seria fazer o próprio objeto (ou um fake dele) seguir os frames de trás para frente, ou de modo 'Replay', onde você antes de dar o 'Play' reseta a variável a em 1 e segue crescentemente até o limite de frames gravados (nesse caso não pode descartar frames).

O que eu disse na prática é assim:

a-=1
x=rev_x[a]
y=rev_y[a]

e no caso de um simples replay:

a+=1
x=rev_x[a]
y=rev_y[a]

Note que: Já deve existir os dados gravados na arrays.

Tudo no evento Step, tanto pra gravar, quanto pra ler, a velocidade do jogo em frames por segundo (também conhecido como FPS) indicará a 'resolução' do replay e a quantidade de detalhes que será armazenado, quanto maior o FPS, maior a resolução e assim por diante.

Se você não entender eu posso fazer um sistema bem simples funcionando no mesmo princípio do exemplo citado aqui, e você estuda da melhor forma que encontrar.

Boa sorte com seu projeto.
tópico de origem:
http://gmbr.forumeiros.com/t13203-resolvidocontrole-temporal?highlight=controle+emporal
vlw^^

William Lima

Ranking : Nota A
Número de Mensagens : 426
Idade : 22
Data de inscrição : 10/09/2010
Notas recebidas : C+A+A+B+A
Reputação : 10
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 2
   : 0

http://williammustaffa.blogspot.com

Voltar ao Topo Ir em baixo

Re: [pedido]engine de controle temporal

Mensagem por Markituh em Dom 23 Jan 2011, 23:57

Controle temporal? Que zika, o controle de voltar no tempo do Prince of Persia. Eu vi uma engine na GMC que utilizava um arquivo de texto para fazer, mas este método é muito mais prático...

Tipo, a cada step, ele tem que gravar as posições anteriores numa array. Só que muitos valores deixariam o jogo lento, e para isso só era deletar os primeiros frames. Aí num Alarm que é executado a cada 1 step, coloca esse código:
Código:
a+=1
rev_x[a]=x
rev_y[a]=y
Então você iria criar um limitador, como explica o tutorial, que quando chegar a 400 apagar ele e colocar no 1.
Código:
if variable_array_get(rev_x,400) and variable_array_get(rev_y,400)
{
for (i=0;i<400;i+=1)
{
variable_array_set(rev_x,i,0)
variable_array_set(rev_y,i,0)
}
a = 1
}
Aí quando apertar a tecla, só colocar outro alarm que executa a cada step e por:
Código:
a-=1
x=rev_x[a]
y=rev_y[a]
Pronto vai voltar no tempo Very Happy Entendeu agora?

___________

"Não deixe para amanhã o que se pode fazer hoje"

Links úteis:
Índice de Tutoriais
Manual online do GMS

Markituh

Ranking : Sem avaliações
Número de Mensagens : 2183
Data de inscrição : 11/10/2009
Reputação : 106
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [pedido]engine de controle temporal

Mensagem por William Lima em Seg 24 Jan 2011, 11:01

sim,vlw cara,pra mim tava confuso mas agora melhorou^^
vlw

William Lima

Ranking : Nota A
Número de Mensagens : 426
Idade : 22
Data de inscrição : 10/09/2010
Notas recebidas : C+A+A+B+A
Reputação : 10
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 2
   : 0

http://williammustaffa.blogspot.com

Voltar ao Topo Ir em baixo

Re: [pedido]engine de controle temporal

Mensagem por William Lima em Ter 25 Jan 2011, 03:46

olha tentei fazer aqui mas nao deu cero Happy
sera que não poderia fazer uma engine ?
vlw
abrass

William Lima

Ranking : Nota A
Número de Mensagens : 426
Idade : 22
Data de inscrição : 10/09/2010
Notas recebidas : C+A+A+B+A
Reputação : 10
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 2
   : 0

http://williammustaffa.blogspot.com

Voltar ao Topo Ir em baixo

Re: [pedido]engine de controle temporal

Mensagem por Mystery_boy_maker em Ter 25 Jan 2011, 10:02

williammustaffa

Evite posts duplos são contra as Regras do Fórum use o botão editar na ultima mensagem.Dessa vez fica o alerta

Mystery_boy_maker

Número de Mensagens : 908
Idade : 23
Data de inscrição : 25/01/2010
Reputação : 16
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 1

http://recursos-mania.forumeiros.com

Voltar ao Topo Ir em baixo

Re: [pedido]engine de controle temporal

Mensagem por Markituh em Ter 25 Jan 2011, 10:21

=/ Beleza, vou fazer um pequeno exemplo. Mas eu preciso que você aprenda, decore como fazer, só olhar a engine não vai te levar a nada, pois só é chegar nela e pegar os códigos. Quando eu terminar eu edito/posto.

___________

"Não deixe para amanhã o que se pode fazer hoje"

Links úteis:
Índice de Tutoriais
Manual online do GMS

Markituh

Ranking : Sem avaliações
Número de Mensagens : 2183
Data de inscrição : 11/10/2009
Reputação : 106
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [pedido]engine de controle temporal

Mensagem por Conteúdo patrocinado Hoje à(s) 15:59


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum