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

Nenhum

Ver toda a lista


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

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuáriohttp://www.gamersprobr.com

Bug na Hora de Movimentar

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
avatar
Ranking : Nota B
Notas recebidas : B+B
Data de inscrição : 04/03/2012
Número de Mensagens : 1925
Insígnias de JAM :

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

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

Re: Bug na Hora de Movimentar

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 ;)
avatar
Data de inscrição : 08/01/2013
Número de Mensagens : 132
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuáriohttp://www.gamersprobr.com

Re: Bug na Hora de Movimentar

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
avatar
Data de inscrição : 04/04/2010
Número de Mensagens : 148
Insígnias de JAM :

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

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

Re: Bug na Hora de Movimentar

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
avatar
Ranking : Nota C
Notas recebidas : D-D-D-C-C-B
Data de inscrição : 15/03/2012
Número de Mensagens : 564
Insígnias de JAM :

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

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

Re: Bug na Hora de Movimentar

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
avatar
Data de inscrição : 08/01/2013
Número de Mensagens : 132
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuáriohttp://www.gamersprobr.com

Re: Bug na Hora de Movimentar

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
avatar
Data de inscrição : 04/04/2010
Número de Mensagens : 148
Insígnias de JAM :

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

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

Re: Bug na Hora de Movimentar

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.
avatar
Data de inscrição : 08/01/2013
Número de Mensagens : 132
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuáriohttp://www.gamersprobr.com

Re: Bug na Hora de Movimentar

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
Conteúdo patrocinado

Re: Bug na Hora de Movimentar

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