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

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 31/05/2013
Número de Mensagens : 52
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

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

Image_index bug

em Dom 17 Nov 2013, 11:28
Bom, estou fazendo um jogo a la tetris e pus esse codigo no script de movimentação dos blocos, e pus o script no step event:



Código:

if keyboard_check(vk_up) {
  if (image_index < image_number){
      image_index = image_index + 1;  //Passa para a prox. imagem caso nao seja a ultima
  }
  else {
        image_index = 0;  // Se for a ultima, volta pra primeira
  } 
}
Sendo que sao 1 sprite para cada bloco e em cada sprite tem o bloco em todas as suas rotações possiveis. Daí, quando é pressionado UP, o esperado é que mude de imagem do sprite.
Porém de vez em quando, dá um bugzinho, ou o sprite nao muda de imagem, ou muda 2 vezes seguidas.
Alguém tem alguma sugestão de como concertar?Question 
avatar
Ranking : Nota B
Notas recebidas : B
Data de inscrição : 28/11/2010
Número de Mensagens : 454
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 37

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

Re: Image_index bug

em Dom 17 Nov 2013, 11:33
Reputação da mensagem: 100% (1 votos)
Tenho uma sim:
Código:
if keyboard_check_pressed(vk_up) {
  if (image_index < image_number-1){
      image_index += 1;  //Passa para a prox. imagem caso nao seja a ultima
  }
  else {
        image_index = 0;  // Se for a ultima, volta pra primeira
  }
}
Acho que resolverá seu problema.
avatar
Ranking : Nota A
Notas recebidas : B A
Data de inscrição : 20/12/2008
Número de Mensagens : 2516
Insígnias de JAM :

Insignia 1x 1 Insignia 2x 0 Insignia 3x 0
Reputação : 177

Prêmios
   : 2
   : 1
   : 1
Ver perfil do usuáriohttp://redscreensoft.blogspot.com

Re: Image_index bug

em Dom 17 Nov 2013, 11:35
Reputação da mensagem: 100% (1 votos)
off: Ninja, você é um NINJA! Mas fica meu post aqui...

Você usou keyboard_check que ocorre enquanto você mantem a tecla pressionada. Então caso você repouse o dedo sobre a tecla por meio segundo, seu código será executado 15 vezes (Caso a velocidade da room seja 30 quadros por segundo).

Basta usar a função keyboard_check_pressed, que isso ocorre apenas no primeiro frame de apertar a tecla, e só volta a ocorrer após soltar e teclar novamente:

Código:
if keyboard_check_pressed(vk_up)
{
    if (image_index < image_number)
    {
       image_index += 1;
    }
   else
   {
        image_index = 0;
   }  
}
FLWS!
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