Duvida com codigo

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

Duvida com codigo

Mensagem por Sonic 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! ;)

Sonic

Ranking : Nota D
Número de Mensagens : 384
Data de inscrição : 12/01/2010
Notas recebidas : D
Reputação : -4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Duvida com codigo

Mensagem por Cainã em Ter 15 Jun 2010, 18:30

Qual dos códigos você deseja que seja relativo? Pelo que vejo nenhum pode ser tratado assim.

Cainã

Número de Mensagens : 1335
Idade : 22
Data de inscrição : 07/03/2010
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://cai.na.tl/

Voltar ao Topo Ir em baixo

Re: Duvida com codigo

Mensagem por PedroX 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;

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Duvida com codigo

Mensagem por reddragon 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.

reddragon

Número de Mensagens : 267
Idade : 27
Data de inscrição : 19/03/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Duvida com codigo

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


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