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

Nenhum

Ver toda a lista


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

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Não to conseguindo fazer código não mover enquanto

em Ter 22 Jan 2013, 21:53
Não to conseguindo fazer código de não mover enquanto está no ar, estou usando:

Código:
keyboard_check(vk_left) && !place_free(x,y-1)

Mas ele fico para quando eu uso isso, o que tem de errado?


Última edição por iSillum em Qui 24 Jan 2013, 14:28, editado 2 vez(es)
avatar
Ranking : Nota B
Notas recebidas : B - B - A - B
Data de inscrição : 06/07/2011
Número de Mensagens : 764
Insígnias de JAM :

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

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

Re: Não to conseguindo fazer código não mover enquanto

em Ter 22 Jan 2013, 22:06
Que vc colocou not, veja:

keyboard_check(vk_left) && !place_free(x,y-1)
avatar
Data de inscrição : 22/01/2013
Número de Mensagens : 72
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: Não to conseguindo fazer código não mover enquanto

em Ter 22 Jan 2013, 22:42
pinpi escreveu:Que vc colocou not, veja:

keyboard_check(vk_left) && !place_free(x,y-1)

Mas é isso mesmo, se houver algo sólido em baixo dele (chão) ele vai se mover, só que ele continua se movendo no ar.
avatar
Ranking : Nota B
Notas recebidas : B - B - A - B
Data de inscrição : 06/07/2011
Número de Mensagens : 764
Insígnias de JAM :

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

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

Re: Não to conseguindo fazer código não mover enquanto

em Ter 22 Jan 2013, 23:02
Entao deve ser outra coisa, nao tem nada de errado no codigo.
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: Não to conseguindo fazer código não mover enquanto

em Ter 22 Jan 2013, 23:05
Posso te dar um bom exemplo para verificar isso, pois eu uso até demais!
código:
//create
noar=false;

//step
if (place_free(x,y+1)){gravity=0.4;noar=true;friction=0;}
else if !(place_free(x,y+1)){gravity=0;noar=false;friction=0.1;}

//teclado
if (noar=false)
{
if (keyboard_check(vk_right))and(hspeed<4){hspeed+=0.3;}
if (keyboard_check(vk_left))and(hspeed>-4){hspeed-=0.3;}
}

Eu uso muito isso em meus jogos de plataforma!
Qualquer dúvida, estou aí para ajudar quem for!
[edit]
-----
Esqueci de mencionar que quando for bater em algo sólido, no caso o chão, no código da colisão com o chao use vspeed=0!
avatar
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 29/03/2009
Número de Mensagens : 927
Insígnias de JAM :

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

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

Re: Não to conseguindo fazer código não mover enquanto

em Qua 23 Jan 2013, 00:09
bom se seu jogo for de plataforma e você está se referindo ao pulo, então é simples, troque
Código:
keyboard_check(vk_left) && !place_free(x,y-1)
por:
Código:
keyboard_check(vk_left) and !vspeed=0
avatar
Data de inscrição : 19/08/2010
Número de Mensagens : 1299
Insígnias de JAM :

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

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

Re: Não to conseguindo fazer código não mover enquanto

em Qua 23 Jan 2013, 00:29
Acho que o código tá errado.

acho q deve ser assim :

keyboard_check(vk_left) && !place_free(x,y+1)

mudei só o sinal.
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

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

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

Re: Não to conseguindo fazer código não mover enquanto

em Qua 23 Jan 2013, 13:32
FlyAway escreveu:Acho que o código tá errado.

acho q deve ser assim :

keyboard_check(vk_left) && !place_free(x,y+1)

mudei só o sinal.
Faz sentido.

Mas não explica porque o objeto CONSEGUE se mexer quando está no chão. Quer dizer, como ele estava antes (y-1), a função place_free deveria retornar true SEMPRE, impedindo o objeto de se mover em qualquer situação - a menos que ele estivesse prestes a tocar o teto.

A menos que a variável "solid" do objeto esteja marcada como "true". Nesse caso, pode ser que ele esteja colidindo consigo mesmo, permitindo movimentação em qualquer lugar.
avatar
Data de inscrição : 22/01/2013
Número de Mensagens : 72
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: Não to conseguindo fazer código não mover enquanto

em Qua 23 Jan 2013, 13:48
pinpi escreveu:Entao deve ser outra coisa, nao tem nada de errado no codigo.

Eu verifiquei todos os códigos e realmente não tinha nada errado com esse código de cima, mas depois que eu concertei apareceu outro problema, ele não vai para os lados, mas se eu apertar algum botão eu para de pular até o final e começa a cair.

Tipo assim, eu pulo por exemplo até a altura 20, ele vai subindo normalmente mas se eu aperta right ou left, ele para de subir antes de chegar a 20 e começa a cair.

Como concerta?

Obrigado por me ajudar a resolver o primeiro problema todo mundo.
avatar
Data de inscrição : 09/07/2011
Número de Mensagens : 646
Insígnias de JAM :

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

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

Re: Não to conseguindo fazer código não mover enquanto

em Qua 23 Jan 2013, 14:56
Pô pessoal, desculpa por isso, mas é brincadeira vocês não terem resolvido isso ainda.
Uma simples variável pra colisão e pornto, acabou. E eles viveram felizes para sempre fim! rsrs
Tenta isso @iSillum.
avatar
Data de inscrição : 22/01/2013
Número de Mensagens : 72
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: Não to conseguindo fazer código não mover enquanto

em Qua 23 Jan 2013, 15:01
Super Maker escreveu:Pô pessoal, desculpa por isso, mas é brincadeira vocês não terem resolvido isso ainda.
Uma simples variável pra colisão e pornto, acabou. E eles viveram felizes para sempre fim! rsrs
Tenta isso @iSillum.

Eu já tinha resolvido isso, mas apareceu outro problema, olha minha ultima resposta.
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

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

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

Re: Não to conseguindo fazer código não mover enquanto

em Qua 23 Jan 2013, 15:17
iSillum escreveu:
pinpi escreveu:Entao deve ser outra coisa, nao tem nada de errado no codigo.

Eu verifiquei todos os códigos e realmente não tinha nada errado com esse código de cima, mas depois que eu concertei apareceu outro problema, ele não vai para os lados, mas se eu apertar algum botão eu para de pular até o final e começa a cair.

Tipo assim, eu pulo por exemplo até a altura 20, ele vai subindo normalmente mas se eu aperta right ou left, ele para de subir antes de chegar a 20 e começa a cair.

Como concerta?

Obrigado por me ajudar a resolver o primeiro problema todo mundo.
Que parte do código tinha problema (já que essa parte que estávamos olhando não tinha)? Como foi consertado?
Como é o código de pular, cair e bater no teto? Estou desconfiado que seu objeto está se comportando como se tivesse batido no teto.
A variável "solid" do objeto está marcada como true ou false?

É muito difícil saber como consertar seu código sem conhecê-lo. Você poderia postar o código completo e indicar o evento em que ele acontece, por favor?
avatar
Data de inscrição : 22/01/2013
Número de Mensagens : 72
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: Não to conseguindo fazer código não mover enquanto

em Qua 23 Jan 2013, 15:21
saim escreveu:É muito difícil saber como consertar seu código sem conhecê-lo. Você poderia postar o código completo e indicar o evento em que ele acontece, por favor?

Eu vou te enviar o arquivo ai você olha blz?
Pra enviar e só mandar o arquivo .gmk81?
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

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

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

Re: Não to conseguindo fazer código não mover enquanto

em Qua 23 Jan 2013, 15:30
Eu estou num computador sem o game maker, então não adianta... Sad
Mas você pode colocar o .gmk81 em algum site de hospedagem que alguém certamente vai olhar pra você! Smile

Mas a versão mais popular é a 8.0, se você tiver como "salvar como" .gmk, melhor.
avatar
Data de inscrição : 22/01/2013
Número de Mensagens : 72
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: Não to conseguindo fazer código não mover enquanto

em Qua 23 Jan 2013, 15:42
No evento Create:
Código:
//variavel auxiliar
global.posicaojogador="right";

No evento Step

Código:
//deixa jogador parado com sprite certa
if global.posicaojogador=="right" && keyboard_check_released(vk_right){
    sprite_index=spr_jogador_parado_right
    motion_set(0,0)
}else
if global.posicaojogador=="left" && keyboard_check_released(vk_left){
    sprite_index=spr_jogador_parado_left
    motion_set(180,0)
}

//gravidade
if place_free(x,y+1){
vspeed+=1
}

//sistema mudar sprite se esta subindo ou caindo
if vspeed<0 && global.posicaojogador=="right"{
    sprite_index=spr_jogador_pulando_right
}else
if vspeed<0 && global.posicaojogador=="left"{
    sprite_index=spr_jogador_pulando_left
}
if vspeed>0 && global.posicaojogador=="right"{
    sprite_index=spr_jogador_caindo_right
}else
if vspeed>0 && global.posicaojogador=="left"{
    sprite_index=spr_jogador_caindo_left
}

No evento Left:

Código:
//sistema andar esquerda
if keyboard_check (vk_left) && !place_free(x,y+1){
    image_speed=1.8
    motion_set(180,4)
    sprite_index=spr_jogador_andando_left
    sprite_get_number=10
    global.posicaojogador="left";
}

No evento Up:
Código:
//sistema de pulo
if keyboard_check(vk_up) && !place_free(x,y+1){
    vspeed=-10
    //para pular sempre numa direçao
    if global.posicaojogador=="right"{
        hspeed=7
    }else
    if global.posicaojogador=="left"{
        hspeed=-7
    }
}

No evento right:
Código:
//sistema andar direita
if keyboard_check(vk_right) && !place_free(x,y+1){
    image_speed=1.8
    motion_set(0,4)
    sprite_index=spr_jogador_andando_right
    sprite_get_number=10
    global.posicaojogador="right";
}

No evento Collision no obj_jogador
Código:
//para nao atravessar objeto
vspeed=0
hspeed=0
//ao cair mudar a sprite dele parado no chao
if !place_free(x,y+1) && global.posicaojogador=="right"{
    sprite_index=spr_jogador_parado_right
}else
if !place_free(x,y+1) && global.posicaojogador=="left"{
    sprite_index=spr_jogador_parado_left
}

O jogador e o chao estão como Solid

OBS: O jogador pula para frente.
avatar
Data de inscrição : 19/08/2010
Número de Mensagens : 1299
Insígnias de JAM :

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

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

Re: Não to conseguindo fazer código não mover enquanto

em Qua 23 Jan 2013, 15:52
Tira o solid do jogador.

e nessa parte :

//gravidade
if place_free(x,y+1){
vspeed+=1
}

Mude para :

//gravidade
gravity=0.4 // mude ao seu gosto
gravity_direction=270 // 270 é para ir pra baixo .

Seus codigos pra mim estão muito confusos, dê uma organizada pode atrapalhar mais tarde.
Espero que funcione Happy
avatar
Data de inscrição : 22/01/2013
Número de Mensagens : 72
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: Não to conseguindo fazer código não mover enquanto

em Qua 23 Jan 2013, 15:55
FlyAway escreveu:Tira o solid do jogador.

e nessa parte :

//gravidade
if place_free(x,y+1){
vspeed+=1
}

Mude para :

//gravidade
gravity=0.4 // mude ao seu gosto
gravity_direction=270 // 270 é para ir pra baixo .

Seus codigos pra mim estão muito confusos, dê uma organizada pode atrapalhar mais tarde.
Espero que funcione Happy

Continua a mesma coisa.

E sobre os códigos estarem confusos o que que eu posso fazer pra melhorar?
avatar
Data de inscrição : 19/08/2010
Número de Mensagens : 1299
Insígnias de JAM :

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

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

Re: Não to conseguindo fazer código não mover enquanto

em Qua 23 Jan 2013, 16:02
E mude isso:

No evento Collision no obj_jogador

Código:

//para nao atravessar objeto
vspeed=0
hspeed=0
//ao cair mudar a sprite dele parado no chao
if !place_free(x,y+1) && global.posicaojogador=="right"{
sprite_index=spr_jogador_parado_right
}else
if !place_free(x,y+1) && global.posicaojogador=="left"{
sprite_index=spr_jogador_parado_left
}

Por Isso :

//para nao atravessar objeto
move_contact_solid(direction,12)
vspeed=0
//ao cair mudar a sprite dele parado no chao
if !place_free(x,y+1) && global.posicaojogador=="right"{
sprite_index=spr_jogador_parado_right
}else
if !place_free(x,y+1) && global.posicaojogador=="left"{
sprite_index=spr_jogador_parado_left
}



E vc pode separar mais os códigos, ta mto embolado.
avatar
Data de inscrição : 22/01/2013
Número de Mensagens : 72
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: Não to conseguindo fazer código não mover enquanto

em Qua 23 Jan 2013, 16:37
continua a mesma coisa.

@FlyAway você se importa se eu te mandar o arquivo e você dar uma olhada?
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

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

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

Re: Não to conseguindo fazer código não mover enquanto

em Qua 23 Jan 2013, 16:39
O que está acontecendo é que ao apertar as teclas, você define a direção do movimento. A velocidade vertical fica zerada, sobrando só a horizontal. Se ao invés de usar motion_set você definir o valor de hspeed (pra 4 ou -4, dependendo de ser pra direita ou esquerda), deve resolver.
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