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

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 12/01/2010
Número de Mensagens : 384
Insígnias de JAM :

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

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

Duvida com codigo

em Ter 15 Jun 2010, 18:03
Como eu faço essa ação aqui em baixo relativa?

if keyboard_check(vk_right){mov_dir=true mov_esq=false}
if keyboard_check(vk_left){mov_dir=false mov_esq=true}
if keyboard_check(vk_left) and keyboard_check(vk_right){mov_dir=false mov_esq=false}
if !keyboard_check(vk_left) and !keyboard_check(vk_right){mov_dir=false mov_esq=false}

OBS: escreva o codigo ok! ;)
avatar
Data de inscrição : 07/03/2010
Número de Mensagens : 1335
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áriohttp://cai.na.tl/

Re: Duvida com codigo

em Ter 15 Jun 2010, 18:30
Qual dos códigos você deseja que seja relativo? Pelo que vejo nenhum pode ser tratado assim.
Ranking : Nota C
Notas recebidas : C+B
Data de inscrição : 26/07/2008
Número de Mensagens : 6037
Insígnias de JAM :

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

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

Re: Duvida com codigo

em Ter 15 Jun 2010, 19:08
resumi o codigo, pois o seu esta meio estranho...
a unica coisa a mudar é o hspeed caso for x
Código:
if keyboard_check(vk_right)
{
if keyboard_check(vk_left) then exit;
hspeed=3
}
if keyboard_check(vk_left)
{
if keyboard_check(vk_right) then exit;
hspeed=-3
}

if !keyboard_check(vk_right) && !keyboard_check(vk_left) hspeed=0;
avatar
Data de inscrição : 19/03/2008
Número de Mensagens : 267
Insígnias de JAM :

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

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

Re: Duvida com codigo

em Ter 15 Jun 2010, 20:27
Sonic da uma olhada nessa minha aula que pode te ajudar.

http://www.gamemakerbrasil.com/game-maker-f36/aula-3-nossas-primeiras-linhas-t2121.htm

achei interessante a resolução sua, Pedro Henrique mas acredito que ele ainda não esta tratando a movimentação e sim as vaiáveis que levam a ela.

neste caso proponho duas formas para resolver:

primeira:

essa é uma alternativa usando variavas diferentes.
direta
se igual a 1 é ele esta para direita se 0 é pra esquerda.
andando
se igual a 1 ele esta andando e 0 esta parado.

Código:
//essa comparação analisa se os dois botões estão soltos ou apertados
//se a comparação retornar true ele esta parado se tornar false esta andando
if ((keyboard_check(vk_right) and keyboard_check(vk_left)) or (!keyboard_check(vk_right) and !keyboard_check(vk_left))){
    andando = 0;
}else{//se ele estiver andando a variável andando fica 1 e compara qual botão esta apertando.
    andando = 1;
    if (keyboard_check(vk_right)){//compara se pra direita
        direita = 1;
    }
    if (keyboard_check(vk_left)){//compara se pra esquerda
        direita = 0;
    }
}

mas se quiser usar esse código deve se atentar também no seu script de movimentação. creio que ficaria algo do tipo.

Código:
if (andando == 1){
    if (direita == 1){
        sprite_index = //nome da imagem do char andando pra direita
        hspeed = //velocidade positiva
    }else{
        sprite_index = //nome da imagem do char andando pra esquerda
        hspeed = //velocidade negativa
    }
}else{
    if (direita == 1){
        sprite_index = //nome da imagem do char parado pra direita
        hspeed = 0 //velocidade 0
    }else{
        sprite_index = //nome da imagem do char parado pra esquerda
        hspeed = 0 //velocidade 0
    }
}

segunda.

essa versão usa as suas variáveis Sonic.

Código:
//essa comparação analisa se os dois botões estão soltos ou apertados
//se a comparação retornar true ele esta parado se tornar false esta andando
if ((keyboard_check(vk_right) and keyboard_check(vk_left)) or (!keyboard_check(vk_right) and !keyboard_check(vk_left))){
    mov_dir = false
    mov_esq = false
}else{//se ele estiver andando as variáveis se modificam para a direção que você quer
    if (keyboard_check(vk_right)){//compara se pra direita
      mov_dir = true
      mov_esq = false
    }
    if (keyboard_check(vk_left)){//compara se pra esquerda
        mov_dir = false
        mov_esq = true
    }
}

se resolveu me manda uma mensagem pra me agradecer ou reclamar.
Conteúdo patrocinado

Re: Duvida com codigo

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