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

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
Data de inscrição : 12/04/2010
Número de Mensagens : 340
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

Movimento travado

em Ter 29 Jun 2010, 22:28
Oi pessoal,to com um probleminha.

Fazendo meu jogo de plataforma criei variaveis no create:

Código:
andando=false
noar=false
lado=0
//0=esq e 1=dir

e no step fiz assim:

Código:
/*Definir gravidade*/
if (place_free(x,y+1))//Se 1 pixel abaixo esta livre,ou seja, se não tem chão
{
gravity_direction=270//Direção da gravidade deve ser 270,ou para baixo
gravity=0.5//força da gravidade deve ser de 0.5
noar=true//variavel noar é verdadeira,ou seja,o char esta pulando
}
else//Se a função (place_free(x,y+1)) não for verdadeira,ou seja,se tiver chão.
{
gravity_direction=270//Direção da gravidade deve ser 270,ou para baixo
gravity=0//sem gravidade(evita bugs)
noar=false//Var noar é falsa,ou seja,o char esta no chão
}//End
       

/*Movimento para esquerda*/
//0=esq e 1=dir
//noar e andando
if (place_free(x-4,y)) && (keyboard_check(vk_left))//Se o char estiver livre de colizão 4 pixel a esquerda e apertar teecla esquerda
{
x-=4//Move 4 pixel á esquerda
andando=true//Var andando é true,ou seja,o char está andando
lado=0//o lado ser que o char está andando é 0,ou esq
}


/*Movimento para direita*/
if (place_free(x+4,y)) && (keyboard_check(vk_right))//Se o char estiver livre de colizão 4 pixel a direita e apertar tecla direita
{
x+=4//Move 4 pixel á esquerda
andando=true//Var andando é true,ou seja,o char está andando
lado=1//o lado ser que o char está andando é 1,ou dir
}

/*Definir andando como falso*/

if !(keyboard_check(vk_left)) && !(keyboard_check(vk_right))//se direita e esquerda não forem pressionadas
{
andando=false//Var andando=false,ou seja,o char está parado
}

/*Movimento de pulo*/
if !(place_free(x,y+1)) && (keyboard_check(vk_up))//se tem achão e apertar cima
{
vspeed=-10//pula 10 pixel para cima
}


/*Definindo sprites por condição de variavel*/
//Condições de andando=true

if (andando=true)&&(lado=0)//se o player andar para esquerda
{
sprite_index=spr_percy_andando_esquerda//troca para este sprite
}

if (andando=true)&&(lado=1)//se o player andar para direita
{
sprite_index=spr_percy_andando_direita//troca para este sprite
}

//Condições de andando=false

if (andando=false)&&(lado=0)
{
sprite_index=spr_pery_parado_esquerda
}

if (andando=false)&&(lado=1)
{
sprite_index=spr_percy_parado_direita
}

//Condição de noar=true

if (noar=true)&&(lado=0)
{
sprite_index=spr_percy_pulando_esquerda
}

if (noar=true)&&(lado=1)
{
sprite_index=spr_percy_pulando_direita
}

E na colizão com o chão ficou assim:

Código:
vspeed = 0

quando executo o jogo e movo o char ele se move normal,mas quando pulo para outras plataforma derrepente o cha começa atravar!! se aperto para esquerda ele se move para esquerda aos tirãos,será que alguem pode me ajudar,ja tentei de tudo!!!
avatar
Data de inscrição : 04/06/2010
Número de Mensagens : 410
Insígnias de JAM :

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

Prêmios
   : 1
   : 0
   : 0
Ver perfil do usuáriohttp://livrodojovemnerd.blogspot.com

Re: Movimento travado

em Ter 29 Jun 2010, 23:06
É porque da um erro na colisão do chão com o player. Infelizmente, nao sei ajudar mas, da uma leve pesquisada no fórum, que tem um ótimo tutorial do Mistery Boy Maker sobre 'personagem mudar de sprite ao andar'.
Abs
avatar
Ranking : Nota B
Notas recebidas : B
Data de inscrição : 24/03/2010
Número de Mensagens : 1129
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 1
Ver perfil do usuáriohttp://awesomewizards.deviantart.com/

Re: Movimento travado

em Qua 30 Jun 2010, 08:51
bota isso na colisão com o chão
Código:

// Encaixar no bloco
if !(vspeed < 0)
{
noar=false    move_contact_solid(270,32);
    if (hspeed > 0) {if !(place_free(x-v,y+1)) vspeed = 0; hspeed = 0;}
    else if (hspeed < 0) {if !(place_free(x-v,y+1)) vspeed = 0; hspeed = 0;}
    else if (hspeed = 0) {if !(place_free(x,y+1)) vspeed = 0;}
}
else
{
    move_contact_solid(90,32);
    vspeed = 0;
}
Data de inscrição : 12/04/2010
Número de Mensagens : 340
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: Movimento travado

em Qua 30 Jun 2010, 18:03
ai pessoal,não adiantou mas obrigado pela ajuda, e quem tiver uma outra maneira de ajudar por favor faça.
avatar
Data de inscrição : 25/01/2010
Número de Mensagens : 908
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 1
Ver perfil do usuáriohttp://recursos-mania.forumeiros.com

Re: Movimento travado

em Qua 30 Jun 2010, 20:31
Bem voce pode fazer assim :

No Create :


direita = true
chao = false
andando = false


Agora no Step



if direita = true {
if chao = false {
if vspeed <=0 { sprite_index = spr_pulando_direita

}else{
if andando = true and pe_no_chao = true { sprite_index = spr_andando_direita
}else{
sprite_index = spr_parado_direita
}
}
}else{
if direita = false {
if chao = false {
if vspeed <=0 { sprite_index = spr_pulando_esq


if (keyboard_check(vk_right)){
hspeed = 4;direita = true;andando = true
}else{
if (keyboard_check(vk_left)){
hspeed = -4;direita = false;andando = true
}else{
hspeed = 0;andando = false
}
}


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

}
}

if chao = true {
if andando = true { sprite_index = spr_andando_esq
}else{
andando = false {
sprite_index = spr_parado_esq



}
}
}
}


Na Colisao com o solo

vspeed=0
move_contact_solid(270,5)
chao = true
Data de inscrição : 12/04/2010
Número de Mensagens : 340
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: Movimento travado

em Qua 30 Jun 2010, 22:42
agora o char nem se meche!!!!
avatar
Data de inscrição : 25/01/2010
Número de Mensagens : 908
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 1
Ver perfil do usuáriohttp://recursos-mania.forumeiros.com

Re: Movimento travado

em Qua 30 Jun 2010, 23:05
Eu fiz uma engine para você







Tecla X pula e direcionais se movem

http://sharesend.com/download/z3ofs

Atenção as sprites foram feitas por mim não modique a engine para construir um jogo seu ! ela foi feita para ser estudada!


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