[Resolvido]Sincronia objeto+animação!

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

Resolvido [Resolvido]Sincronia objeto+animação!

Mensagem por ruben.23 em Sex 16 Ago 2013, 16:45

Bem, como todos sabem existe uma variavel chamada de friction, que faz o papel de desaceleração de um objeto, eu gostaría de saber, se é possível por fricção tambem, nas   animações dos sprites dos objetos do jogo. Agradecimentos antecipados por qualquer informação.


Última edição por ruben.23 em Qua 21 Ago 2013, 12:54, editado 6 vez(es) (Razão : problema rezolvido!)

ruben.23

Número de Mensagens : 212
Data de inscrição : 29/05/2013
Reputação : 10
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Sincronia objeto+animação!

Mensagem por PedroX em Sex 16 Ago 2013, 17:25

Coloque assim no Step ou Draw:

Código:
image_speed *= 0.95;
Ou então:

Código:
image_speed -=  0.02;
O verdadeiro friction nada mais é do que algo do tipo:
Código:
speed -= friction;

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Sincronia objeto+animação!

Mensagem por ruben.23 em Sex 16 Ago 2013, 20:01

eu testei e não deu certo não!

ruben.23

Número de Mensagens : 212
Data de inscrição : 29/05/2013
Reputação : 10
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Sincronia objeto+animação!

Mensagem por mZIl em Sex 16 Ago 2013, 20:48

Deixe-me ver se entendi:

Você quer que a velocidade da animação do pé do seu objeto tenha a mesma velocidade que ele anda?

Edit: Vi seu outro tópico (Dica: não crie tópicos repetidos, isso deixa o fórum desorganizado e é completamente desnecessário ter dois tópicos para o mesmo assunto)  e entendi o que você quer fazer. O que o Pedro falou está certo, você só usou errado acredito eu. Em vez de usar um "image_speed = 0" use isso:

Código:

if image_speed>0 and movendo = true
{
    (image_speed -= 0.02)
}
Esse código tem um problema, a variável "image_speed" pode ficar negativa, então basta não deixar isso ocorrer =P Além disso, acredito que os outros métodos funcionem também.

mZIl

Número de Mensagens : 49
Idade : 19
Data de inscrição : 10/07/2013
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Sincronia objeto+animação!

Mensagem por ruben.23 em Sex 16 Ago 2013, 22:14

acho que vc não entendeu, eu falei desaceleração, ou seja quando um objeto esta em movimento e então ele para, mas ele não deve parar de uma vez, ele deve parar  mais lentamente por cauza da fricção. O que eu queria saber é o seguinte. Digamos que eu fiz um objeto certo? e no evento create eu coloquei uma variavel friction=0.08, e esse objeto usa tres sprites, elas são: spr_virando_esquerda, spr_virando_direita e spr_parado, ok? os sprites spr_virando_esquerda e direita são animações com cada um 2 quadros, certo? Agora eu programo o objeto pra usar as animações virando esquerda e direita, quando apertar as teclas "ceta para direita e esquerda", e coloco um outro codigo para que quando não estiver apertando nenhuma tecla usar spr_parado, até ai tudo bem? Mas como fazer para que ao soltar a tecla as animação do sprite usado, desacelere na mesma velocidade que a do objeto? Ou seja ao soltar a tecla tanto o objeto como a animação da sprite irá desacelerar, se não me engano isso se chama inércia. Todos sabem que depois do freio todo carro ainda vai para frente até desacelerar totalmente. Do mesmo jeito devería ser com a com as imagens, elas desaceleraríam(reduzir avelocidade de exibição) a execulção das animações das sprites em questão, até que o objeto parasse totalmente, quando o objeto estiver parado ela para de execultar a animação!


Última edição por ruben.23 em Sab 17 Ago 2013, 11:24, editado 2 vez(es)

ruben.23

Número de Mensagens : 212
Data de inscrição : 29/05/2013
Reputação : 10
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Sincronia objeto+animação!

Mensagem por mZIl em Sex 16 Ago 2013, 22:21

ruben.23 escreveu:acho que vc não entendeu, eu falei desaceleração, ou seja quando um objeto esta em movimento e então ele para, mas ele não deve parar de uma vez, ele deve par  mais lentamente por cauza da fricção. O que eu queria saber é o seguinte. Digamos que eu fiz um objeto certo? e no evento create eu coloquei uma variavel friction=0.08, e esse objeto usa tres sprites, elas são: spr_virando_esquerda, spr_virando_direita e spr_parado, ok? os sprites spr_virando_esquerda e direita são animações com cada um 2 quadros, certo? Agora eu programo o objeto pra usar as animações virando esquerda e direita, quando apertar as teclas "ceta para direita e esquerda", e coloco um outro codigo para que quando não estiver apertando nenhuma tecla usar spr_parado, até ai tudo bem? Mas como fazer para que ao soltar a tecla as animações as animações vão parando na mesma velocidade do objeto mesmo depois de eu ter soltado a tecla?
Então, é exatamente o que o código vai fazer. Ele vai diminuir a variável image_speed (Que é essencialmente a frequência que os frames da sua animação irão mudar.) e isso vai fazer com que mude os frames mais devagar. Assim, você disse que tem um código para quando não tiver nenhuma tecla apertada ele usa spr_parado. Basta adaptar o código:

No lugar desse código para mudar a sprite para spr_parado use isso (Ou seja, quando todos os botões que movimentam estiverem soltos) :
Código:

if (image_speed>0) and (andando = false)
{
    image_speed -= 0.08
}

if image_speed<=0
{
    sprite_index = spr_parado
    image_speed = 0
}
A ideia é essa. Em vez de parar a animação de vez e mudar a sprite_index para spr_parado, vai diminuindo a image_speed e quando for zero (Ou for menor) irá de fato mudar a sprite_index para spr_parado e irá parar de vez a animação.

mZIl

Número de Mensagens : 49
Idade : 19
Data de inscrição : 10/07/2013
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Sincronia objeto+animação!

Mensagem por PedroX em Sex 16 Ago 2013, 22:26

Tópicos mesclados. Por favor não faça mais de um tópico para uma mesma dúvida. Se eu respondi e você não conseguiu, avise no mesmo tópico. Você já detalhes suficientes para entendermos a pergunta e nós já respondemos também. O que falta é encaixar o código corretamente no seu jogo.

Obrigado pela atenção.

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Sincronia objeto+animação!

Mensagem por saim em Sex 16 Ago 2013, 22:33

Eu costumo usar
Código:
image_speed := speed * constante;

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Sincronia objeto+animação!

Mensagem por ruben.23 em Sab 17 Ago 2013, 03:34

saim escreveu:Eu costumo usar
Código:
image_speed := speed * constante;
Eu não entendi não, faltam explicações nesse código, pelo que entendi, ele sería assim:
velocidade da imagem, dívidida ou igual a velocidade multiplicada pela constante, mas afinal o que diabos é essa "constante" e como ela deve ser declarada ou definida num objeto ou script sei lá, por favor me responda amigo saim! aguardo sua resposta ou de qualquer um que responder, agradecimentos a todos e desculpas pelo erro cometido referente a postar dois tópicos com a mesma dúvida, minha intenção não era desorganisar o forum, minhas sinceras desculpas por isso, eu só quería uma resposta. ao responderem ou não, tenham em mente que vcs estão ajudando ou não no meu desenvolvimento e no desenvolvimento de quem está vendo esse tópico, me ajudando concerteza ajudará a muitos outros, que concerteza terão a mesma dúvida. Só pra constar, eu pesquizei aquí mesmo no forum e não encontrei nenhum tópico que explique o que é uma "constante", ok? falow!

ruben.23

Número de Mensagens : 212
Data de inscrição : 29/05/2013
Reputação : 10
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Sincronia objeto+animação!

Mensagem por PedroX em Sab 17 Ago 2013, 12:14

Quando você multiplica um número por outro maior que 0 e menor que 1, o resultado é um número menor. A constante é esse outro número.

Código:
image_speed = speed * 0.2;
Isso fará com que a velocidade de animação seja 5 vezes menor que a velocidade de movimento.

Se a speed for 5, a image_speed será 1. E assim por diante.

Você também pode usar:

Código:
image_speed = speed / 5;
No final das contas dá no mesmo. O primeiro é mais rápido para o GM calcular, mas não fará muita diferença.

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Sincronia objeto+animação!

Mensagem por ruben.23 em Sab 17 Ago 2013, 13:59

aaah, agora sim finalmente eu entendi, a constante é a multiplicação de um valor, por um numero maior que 0 e menor que 1, num é isso?valew pela resposta pedrox, ela foi muito util!formado, blz ,flw

ruben.23

Número de Mensagens : 212
Data de inscrição : 29/05/2013
Reputação : 10
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Sincronia objeto+animação!

Mensagem por mZIl em Sab 17 Ago 2013, 14:10

ruben.23 escreveu:aaah, agora sim finalmente eu entendi, a constante é a multiplicação de um valor, por um numero maior que 0 e menor que 1, num é isso.valew pela resposta pedrox, ela foi muito util!formado, blz ,flw
Não, calma. Uma constante é o inverso de uma variável, ou seja, ela não varia. Ela é constante, e nunca será mudada enquanto o game estiver sendo rodado. Só poderá ser mudada se você editar o código do game. Se você pegar a expressão acima o "0.2" é uma constante, assim como o "5".

Não vou ficar estendendo o post pois isso está fora do assunto do tópico e se você procurar no google vai achar isso facilmente.

mZIl

Número de Mensagens : 49
Idade : 19
Data de inscrição : 10/07/2013
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Sincronia objeto+animação!

Mensagem por ruben.23 em Qua 21 Ago 2013, 12:44

Problema rezolvido pessoal! Obrigado a todos que tentaram me ajudar, eis o dito codigo, aff:
code:
if keyboard_check(vk_left)
{
image_speed=0.25
sprite_index=spr_pneu_esq
}
else
{
if keyboard_check_released(vk_left)
image_speed=0
}

if keyboard_check(vk_right)
{
image_speed=0.25
sprite_index=spr_pneu_esq
}
else
{
if keyboard_check_released(vk_right)
image_speed=0
}


if keyboard_check(vk_up)
{
image_speed=0.25
sprite_index=spr_pneu_esq
}
else
{
if keyboard_check_released(vk_up)
image_speed=0
}

if keyboard_check(vk_down)
{
image_speed=0.25
sprite_index=spr_pneu_esq
}
else
{
if keyboard_check_released(vk_down)
image_speed=0
}
image_speed=0.25*speed/vel_maxima//usa a velocidade do objeto(speed) para saber quando parar ou animar

Como o tópico já foi resolvido ele sera trancado, caso o autor queira inserir mais alguma informação contate um moderador. CRP-Max.

ruben.23

Número de Mensagens : 212
Data de inscrição : 29/05/2013
Reputação : 10
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Sincronia objeto+animação!

Mensagem por Conteúdo patrocinado Hoje à(s) 14:29


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