Bug na Hora de Movimentar

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

Bug na Hora de Movimentar

Mensagem por Benitz em Ter 15 Jan 2013, 23:05

Amiguinhos é o seguinte sente os códigos

Create

Código:
direita = true
andando = false
atacando = false
cima = true

image_speed = 0.4

Step

Código:
if (keyboard_check(vk_right)){//verifica se a seta direita foi apertada
    hspeed = 5;direita = true;andando = true
}else{
if (keyboard_check(vk_left)){ //verifica se a seta esquerda foi apertada
        hspeed = -5;direita = false;andando = true
    }else{// se não foi
        hspeed = 0;andando = false
    }
}

if (keyboard_check(vk_up)){//verifica se a seta cima foi apertada
    vspeed = -5;cima = true;andando = true
}else{
if (keyboard_check(vk_down)){//verifica se a seta baixo foi apertada
        vspeed = 5;cima = false;andando = true
    }else{// se não foi
        vspeed = 0;andando = false
    }
}

if direita = true {// se para direita
    if andando = true{//se estiver andando
        sprite_index = Spr_Mov_Dir
    }else{//se não estiver andando
        sprite_index = Spr_Mov_DirPar
    }
}

if direita = false {//se não estiver para direta (para esquerda)
    if andando = true{//se estiver andando   
        sprite_index = Spr_Mov_Esq
    }else{//se não estiver andando
        sprite_index = Spr_Mov_EsqPar
    }
}

if cima = true {// se para cima
    if andando = true{//se estiver andando
        sprite_index = Spr_Mov_Cima
    }else{//se não estiver andando
      sprite_index = Spr_Mov_CimaPar
    }
}

if cima = false {//se não estiver para cima (para baixo)
    if andando = true{ //se estiver andando
        sprite_index = Spr_Mov_Baixo
    }else{//se não estiver andando
        sprite_index = Spr_Mov_BaiPar
    }
}

O que acontece é o seguinte: O Movimento ta belezinha, funcionado legal, maaaaaaaaaaaaaaaaaaas, quando eu movimento para as laterais eles não mudam de Sprite, ficam na mesma que estava no ultimo movimento. Eu já mexi nesse código umas mil vezes, e nada, dai tive que apelar para vocês.

Aguardo Resposta Amiguinhos

Benitz

Número de Mensagens : 132
Idade : 25
Data de inscrição : 08/01/2013
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.gamersprobr.com

Voltar ao Topo Ir em baixo

Re: Bug na Hora de Movimentar

Mensagem por JoaoVanBlizzard em Ter 15 Jan 2013, 23:25

é por que você ta especificando que andando é verdadeiro ou falso,em mais de um comando ,tipo assim existem duas ou mais especificaçoes que chamam o andando=false,por exemplo ,se você colocar if cima=false{andando=false} e e estiver precionando para esquerda ,haverá um conflito de duas funcões e isso resultará em bugs ,tente especificar uma função só para isso tipo apos os else
Código:

if cima = false {//se não estiver para cima (para baixo)
    if andando = true{ //se estiver andando
        sprite_index = Spr_Mov_Baixo
    }else{//se não estiver andando
        if keyboard_check(vk_nokey)  sprite_index = Spr_Mov_BaiPar}
}
     
faça o mesmo nas outras funçoes ,não sei se o resultado sera perfeito pq eu uso outros metodos para fazer movimentos mas tenta ai e ve no que dá ok ;)

JoaoVanBlizzard

Ranking : Nota B
Número de Mensagens : 1925
Idade : 38
Data de inscrição : 04/03/2012
Notas recebidas : B+B
Reputação : 144
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 2
   : 0

Voltar ao Topo Ir em baixo

Re: Bug na Hora de Movimentar

Mensagem por Benitz em Ter 15 Jan 2013, 23:38

JoaoVanBlizzard:
é por que você ta especificando que andando é verdadeiro ou falso,em mais de um comando ,tipo assim...
Código:

if cima = false {//se não estiver para cima (para baixo)
    if andando = true{ //se estiver andando
        sprite_index = Spr_Mov_Baixo
    }else{//se não estiver andando
        if keyboard_check(vk_nokey)  sprite_index = Spr_Mov_BaiPar}
}
     
faça o mesmo nas outras funçoes ,não sei se o resultado sera perfeito pq eu uso outros metodos para fazer movimentos mas tenta ai e ve no que dá ok ;)

Testei aqui e o erro continua igual, mas muito obrigado pela ajuda, você falou que utiliza outro método de Movimento você tem um exemplo pra mim ver se melhor que o meu?

Agradesço

Benitz

Número de Mensagens : 132
Idade : 25
Data de inscrição : 08/01/2013
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.gamersprobr.com

Voltar ao Topo Ir em baixo

Re: Bug na Hora de Movimentar

Mensagem por L0l-King em Qua 16 Jan 2013, 08:01

Tens que usar IF ELSE. Pare pra pensar comigo, se ele está andando pra direita, cima = false e andando = true, então ele cai naquele último IF.
É só usar IF ELSE neles e vai funcionar

L0l-King

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

Voltar ao Topo Ir em baixo

Re: Bug na Hora de Movimentar

Mensagem por RafaelCazarotto em Qua 16 Jan 2013, 08:06

acho que achei seu problema
if direita = true {// se para direita
if andando = true{//se estiver andando
sprite_index = Spr_Mov_Dir
}else{//se não estiver andando
sprite_index = Spr_Mov_DirPar
}
}

vc esta checando o esle no andando, então ele só fica com esse sprite Spr_Mov_DirPar se andando = false e direita = true


if andando = true{//se estiver andando
if direita = true {// se para direita
sprite_index = Spr_Mov_Dir
}else{//se não estiver andando
sprite_index = Spr_Mov_DirPar
}
} tenta mudar só esta parte e vai dar certo Very Happy

RafaelCazarotto

Ranking : Nota C
Número de Mensagens : 564
Idade : 19
Data de inscrição : 15/03/2012
Notas recebidas : D-D-D-C-C-B
Reputação : 13
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 1

Voltar ao Topo Ir em baixo

Re: Bug na Hora de Movimentar

Mensagem por Benitz em Qua 16 Jan 2013, 09:09

Amigos não sei o que pode ser mas tentei todos os modos que vocês me passaram e ainda não arrumou, acho que é conflito mesmo, porquê eu tirei as movimentação para cima e para baixo, e parou o bug de movimento da direita e esquerda, então tem algo na programação que não está correto.

Vou fazer mais testes na parte da tarde (porque estou escravizando agora) dai posto aqui se eu conseguir.

mas se alguém tiver algum método de movimentação para RPG e puder me ajudar eu agradesço (lembrando que eu utilizo sprites animadas para movimento Very Happy)

Vlw e obrigado a todos

Benitz

Número de Mensagens : 132
Idade : 25
Data de inscrição : 08/01/2013
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.gamersprobr.com

Voltar ao Topo Ir em baixo

Re: Bug na Hora de Movimentar

Mensagem por L0l-King em Qua 16 Jan 2013, 12:43

Você tentou o que eu falei errado então.
Aqui como é que tem que ser o código, espero que agora enxergue o seu erro.

Código:

if direita = true {// se para direita
    if andando = true{//se estiver andando
        sprite_index = Spr_Mov_Dir
    }else{//se não estiver andando
        sprite_index = Spr_Mov_DirPar
    }
}else if direita = false {//se não estiver para direta (para esquerda)
    if andando = true{//se estiver andando   
        sprite_index = Spr_Mov_Esq
    }else{//se não estiver andando
        sprite_index = Spr_Mov_EsqPar
    }
}else if cima = true {// se para cima
    if andando = true{//se estiver andando
        sprite_index = Spr_Mov_Cima
    }else{//se não estiver andando
      sprite_index = Spr_Mov_CimaPar
    }
}else if cima = false {//se não estiver para cima (para baixo)
    if andando = true{ //se estiver andando
        sprite_index = Spr_Mov_Baixo
    }else{//se não estiver andando
        sprite_index = Spr_Mov_BaiPar
    }
}

Tem que usar o ELSE em TODAS as opções, ele só pode cair em uma delas, por isso precisa usar o ELSE em todas as opções. O uso de só duas variáveis (cima e direita) vai fazer o teu código se confundir e sempre executar ou o 3º ou o 4º IF.

L0l-King

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

Voltar ao Topo Ir em baixo

Re: Bug na Hora de Movimentar

Mensagem por Benitz em Qua 16 Jan 2013, 14:03

@L0l-King - Realmente estava tentando errado, não testei ainda esse jeito porque estou no trabalho, mas assim que chegar em casa vou testar e venho aqui informar se corrigiu. Agradeço muito sua ajuda.

Edit: Vlw pessoal por toda a ajuda, agora sim está funcionando perfeitamente Very Happy. Obrigado a todos

Benitz

Número de Mensagens : 132
Idade : 25
Data de inscrição : 08/01/2013
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.gamersprobr.com

Voltar ao Topo Ir em baixo

Re: Bug na Hora de Movimentar

Mensagem por Conteúdo patrocinado Hoje à(s) 20:07


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