Conectar-se
Quem está conectado
16 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 16 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 02/03/2012
Número de Mensagens : 192
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

[Duvida] Problema com spites, image_index

em Ter 11 Set 2012, 08:27
Eu estava a programar a parte das sprites e surgiu-me um problema, imaginando a sprite tem 30 frames, e eu quando clicar numa tecla eu queria que ele executa-se a animação tuda e quando chega-se ao ultimo frame a imagem para-se (neste caso frame 29). eu fiz este codigo mas não dá a animação corre mas volta ao inicio.

Código:
if (keyboard_check(ord("A")))
{if !(sprite_index=spr_descer){sprite_index=spr_descer}
if (image_index=29){image_index=29}}

eu não consigo perseber qual é o problema, se alguem encontrar uma solução agradeço...


Última edição por kadini em Ter 11 Set 2012, 09:06, editado 1 vez(es)
avatar
Ranking : Sem avaliações
Data de inscrição : 11/10/2009
Número de Mensagens : 2184
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: [Duvida] Problema com spites, image_index

em Ter 11 Set 2012, 08:40
Bom, é o seguinte: image_index é a atualizado a cada step baseado no image_speed, e como esta alteração ocorre antes do seu código (ou depois, vou fazer um benchmark no GM), essa linha aí praticamente não tem efeito.

Ao invés de fazer essa condição, use a pseudo-var image_single e defina-a como 0. Você pode mexer no image_speed também, mas tenho preferência pela anterior.
Código:
if (keyboard_check(ord("A")))
{
  if !(sprite_index=spr_descer)
  { sprite_index=spr_descer }
  image_single = 0
}
Depois, ao soltar, só é definir ela de volta como 1. Ao que o nome me sugere, salve-me o engano, essa variável controla a quantidade de frames que serão avançados a cada step.

Abraços e bom desenvolvimento!
avatar
Data de inscrição : 02/03/2012
Número de Mensagens : 192
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: [Duvida] Problema com spites, image_index

em Ter 11 Set 2012, 08:51
era isso mesmo, mas tive de modar o codigo para ficar a funcionar como eu queria.... image_single vou me lembrar... para ocasiões futuras obrigado...^

Não existe algum codigo para desativar image_single?? eu estou a uzar isto

Código:
if (vspeed<1 and vspeed>-1){sprite_index=spr_parado}
if (vspeed>=1)
{
  if !(sprite_index=spr_descer)
  { sprite_index=spr_descer }
  if (image_index = 29){image_single = 29}
}

ele faz o que eu quero e quando muda para a spr_parado ele não executa amis a condição de baixo pq???

eu vou fazer mais uns teste mas se souberes a resposta agradeço Smile

EDIT:

Revolvi o problema mas não da maneira que eu queria Sad (o efeito é o mesmo mas a verdade é que a função image_index ganhou a batalha...)

Código:
if (vspeed>=1 and !(sprite_index=spr_descer_1))
{
  sprite_index=spr_descer
  if (image_index=29) {sprite_index=spr_descer_1}
 
}

tive de criar um sprite a parte com uma só imagem Sad

se alguem souber pode responder se não podem trancar o topico
avatar
Ranking : Nota B
Notas recebidas : B-C-A-C
Data de inscrição : 18/09/2008
Número de Mensagens : 2490
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 1 Insignia 3x 0

Prêmios
   : 0
   : 2
   : 1
Ver perfil do usuáriohttp://xcreatorgames.weebly.com/

Re: [Duvida] Problema com spites, image_index

em Ter 11 Set 2012, 09:50
Amigo, tente assim:
Código:

if (keyboard_check(ord("A")))
{
  if !(sprite_index == spr_descer)
  {
    sprite_index = spr_descer
  }
  if (floor(image_index) == 29)
 {
    image_speed = 0;
    image_index = 29;
  }
}
Isso deve funcionar...
Flws!
avatar
Data de inscrição : 02/03/2012
Número de Mensagens : 192
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: [Duvida] Problema com spites, image_index

em Ter 11 Set 2012, 10:24
obrigado, pela logica deve estar bem.

floor(image_index) então as image_index podem ser numeros decimais???

o floor poem qualquer numero decimal em numero inteiro né???

só la para as 7 horas (PT) vou poder testar
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum