Entrar
Últimos assuntos
» player não consegue andarpor lovn7 Qui 21 Nov 2024, 13:33
» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56
» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22
» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31
» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23
» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49
» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58
» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36
» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36
» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33
» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51
» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28
» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18
» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08
» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10
» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16
» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40
» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01
» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45
» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34
» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28
» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48
» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54
» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14
» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50
gravidade ou algo do tipo
4 participantes
Página 1 de 1
gravidade ou algo do tipo
fui fazer um segundo personagem para meu jogo, ai eu copiei e colei o que faria movimentos e etc.. do player que eu já tinha pronto. mas deu um bug extremo o player fica com alguns centímetros acima do chão, parece estar flutuando mas ele fica com a sprite de ele caindo e ele em pé ao mesmo tempo creio que é porque não está 100% encostando no chão ai ele dá como se estivesse pulando
alguem sabe resolver isso
alguem sabe resolver isso
matheus870- Data de inscrição : 23/12/2011
Reputação : 1
Número de Mensagens : 118
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: gravidade ou algo do tipo
qual o codigo da gravidade??
MeGusta- Data de inscrição : 04/08/2011
Reputação : 0
Número de Mensagens : 75
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: gravidade ou algo do tipo
ei qual o codigo de colisão ? fal ae vai te ajudar mto
The Wizard- Games Ranking :
Notas recebidas : B
Data de inscrição : 24/03/2010
Reputação : 17
Número de Mensagens : 1129
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 1
x 0 x 0 x 0
Re: gravidade ou algo do tipo
quando encosta no chão ele teria que executar isso ( no evento colisão)
move_contact_solid (direction, 12)
speed = 0
ataque_final_esq=false;global.super_variavel=true;desacelera_esq = true
ataque_final=false;desacelera = true;
isso ai faz com que o player não atravesse o chão
hmm procurar os códigos da gravidade nesse monte de códigos do player eh difícil... se eu encontrar posto aqui
@Edit encontrei os códigos da gravidade
não fui eu quem fiz esse codigos, eu peguei e coloquei no player1 e funcionou
mas no segundo ele não funcionou
move_contact_solid (direction, 12)
speed = 0
ataque_final_esq=false;global.super_variavel=true;desacelera_esq = true
ataque_final=false;desacelera = true;
isso ai faz com que o player não atravesse o chão
hmm procurar os códigos da gravidade nesse monte de códigos do player eh difícil... se eu encontrar posto aqui
@Edit encontrei os códigos da gravidade
não fui eu quem fiz esse codigos, eu peguei e coloquei no player1 e funcionou
mas no segundo ele não funcionou
- Spoiler:
- //GRAVIDADE DO JOGO
if place_free(x,y+1)//verifica a cada 1 pixel da queda, se n�o h� objeto p/ colidir, se assim, o lugar � livre para a queda.
{gravity = 1 //gravidade � igual a 1(movimento vertical)
pulando = false} //quando a gravidade � 1, sonic n�o pula
else //sen�o tiver 1 pixel livre abaixo, ou seja est� ocupado por uma sprite...
{gravity = 0 //...gravidade � igual a 0 (parado)
pulando = true} //quando a gravidade � 0, ao sonic � permitido a a��o de pular.
//---------------------------------------------------------------
//DESEQUILIBRANDO, aqui, quando o player chega na ponta de um abismo, ele desequilibra.
//lado direito
if global.super_variavel=true //abre a super variavel, quando ela � falsa N�O ocorre as a��es deste evento do step...
{//..ela se torna false, quando acontece o movimento de ataque do sonic, que separei em outro piece of code abaixo desse.
if gravity = 0 and place_free(x+10,y+ and image_xscale = 1
{//a linha acima - SE N�O acontecer o codigo da gravidade (gravity = 0) e for verdadeiro o place_free a sua frente
sprite_index=spr_sonicdesequilibra;image_speed = 0.3
}
if gravity = 0 and place_free(x+20,y+ and image_xscale = -1 //o mesmo do codigo acima, porem o sonic t� de costas...
{sprite_index=spr_super_desequilibra;time = 0}//...se eu achar sprites do sonic desiquilibrando de costas ponho aqui.
//lado esquerdo
if gravity = 0 and place_free(x-7,y+ and image_xscale = -1
{
sprite_index=spr_super_desequilibra;image_speed = 0.3
}
if gravity = 0 and place_free(x-20,y+ and image_xscale = +1
{sprite_index=spr_super_sonicparado;time = 0}//aqui a variavel "time" retorna a zero...
//...(variavel "time", quando player esta parado por 5 segundos ou mais).
//---------------------------------------------------------------------------------------
//MOVIMENTOS //separei os movimentos e as trocas de sprites (estes ultimos est�o mais em baixo)
//lado direito
//Corre (a velocidade cresce aritm�ticamente e ainda possui um segundo salto de velcidade).
if keyboard_check(vk_right)and trava_dir = false and agacha = false and olha = false then
{
time = 0 ; //aqui a variavel "time" retorna a zero (variavel "time", quando player esta parado por 5 segundos ou mais).
if acelera < 20 then acelera+=vel1 //o sinal "+=" permite que a vari�vel "acelera" acumule aritm�ticamente (relativamente).
if acelera > 20 then acelera+=vel2 //aqui o player passa a ter uma acelera��o mais rapida (um salto dobrado na acelera��o).
if acelera_esq = 0 then image_xscale = 1 //a frente do sprite virado p/ a direita.
if (acelera > 15 )then acelera = 20 ; trava_esq = true ;desacelera = false ; x+=acelera
}//"acelera = 20 para velocidade nunca ultrapassar 20 (um limite de velocidade) ("x+=" sentido da esquerda p/ a direita.)
//Desacelera (igual a acelera��o, mas com par�metros negativos).
if keyboard_check_released(vk_right) then
desacelera = true //como a tecla released n�o acumula, cria-se essa v�riavel para enquanto ela for true, acumule "acelera-="
if desacelera = true then
{
if acelera < 10 then acelera-=vel1 //subtrai aritm�ticamente (relativamente) da "acelera" o valor da vari�vel "vel1".
if acelera > 10 then acelera-=vel2 //aqui o player passa a ter uma desacelera��o mais rapida
if acelera > 0 then trava_dir =false
if (acelera < 0 )then acelera = 0 ; trava_esq =false ; x+=acelera
}//"x+=acelera", mesmo com par�metros negativos, � positivo, pois se esta desacelerando uma acelera��o no sentido "x+").
//freia (enquanto a variavel vel1 vale 0.1 e a vel2 vale 0.2 a variavel freia vale 0.5, ent�o para o sonic bem r�pido).
if keyboard_check(vk_left )and trava_esq = false then
{
if acelera > 0 then acelera-=freia //subtrai aritm�ticamente da "acelera".
if acelera < 0 then image_xscale = -1 //SE "acelera" menor que zero, sprite inverte
if acelera < 0 then acelera = 0 ;
}
//lado esquerdo (n�o comentei, pois em rela��o ao direito, apenas troca os param�tros e as variaveis de trancagem de teclas)
//Corre esquerda
if keyboard_check(vk_left)and trava_esq = false and agacha = false and olha = false then
{
time = 0 ;
if acelera_esq < 20 then acelera_esq+=vel1
if acelera_esq > 20 then acelera_esq+=vel2
if acelera = 0 then image_xscale = -1
if (acelera_esq > 15 )then acelera_esq = 20 ; trava_dir = true ; desacelera_esq = false; x-=acelera_esq
}
//Desacelera esquerda
if keyboard_check_released(vk_left )then
desacelera_esq = true
if desacelera_esq = true then
{
if acelera_esq < 10 then acelera_esq-=vel1
if acelera_esq > 10 then acelera_esq-=vel2
if acelera_esq > 0 then trava_esq =false
if (acelera_esq < 0 )then acelera_esq = 0 ; trava_dir =false ; x-=acelera_esq
}
//freia esquerda
if keyboard_check(vk_right )and trava_dir = false then
{
if acelera_esq > 0 then acelera_esq-=freia
if acelera_esq < 0 then image_xscale = 1
if acelera_esq < 0 then acelera_esq = 0 ;
}
//pula
if keyboard_check_pressed (ord("Z")) and agacha = false and olha = false
{
time = 0 ;//aqui a variavel "time" retorna a zero (variavel "time", quando player esta parado por 5 segundos ou mais)
if pulando = true
vspeed = -12.5 //for�a do pulo
sound_play(snd_sonic_pula)//som do pulo
}
if keyboard_check(vk_right) and gravity = 1 then //para que mesmo se player estiver parado, ao pular poder se mover no ar.
hspeed = 2
if keyboard_check(vk_left) and gravity = 1 then //para que mesmo se player estiver parado, ao pular poder se mover no ar.
hspeed = - 2
//---------------------------------------------------------------------------------------
//SPRITES (sem loops).
//pulo
if gravity = 1 then {sprite_index = spr_super_sonicpula ;image_speed = 0.4 ; parado = false}//sofrendo gravidade sempre � spr pula
else
//parado
if parado = false and gravity = 0 and time < 150 then sprite_index = spr_super_sonicparado //150 equivale a + ou - 5 segundos.
//time (sonic irrita-se, at� que o jogador tecle)
if sprite_index = spr_super_sonicparado then time+=1; //ganha step na variavel "time", quando maior que 150, player aguarda.
if time>150 and image_xscale = 1 and gravity = 0 //n�o se irrita na beira de abismos (t� preocupado em n�o cair,haha)
{
sobe_image = false
sobe_image2 = false
image_speed=0
sprite_index = spr_super_aguarda ; image_xscale = 1
//n�o quero que "spr_sonicaguardando" sofra loop, ent�o os c�digos "index" abaixo.
if image_index<10 then {image_index+=0.2}
}
if time>150 and image_xscale = -1 and gravity = 0 //n�o se irrita na beira de abismos (t� preocupado em n�o cair,haha)
{
sobe_image = false
image_speed=0
sprite_index = spr_super_sonicparado ; image_xscale = -1
if image_index<10 then {image_index+=0.2}//como a subimagem come�a no zero ENT�O � menor que 10, imagem avan�a c/ veloc. 0.2
}
//abaixa e levanta
if keyboard_check(vk_down) and gravity = 0 and global.plataforma=false then /////////////////////
{
time=0
parado = true ; agacha = true
sprite_index = spr_super_sonicabaixa ; image_speed = 0 ; sobe_image = false; sobe_image2 = false
//n�o quero que "spr_sonicabaixa" sofra loop, ent�o os c�digos "index" abaixo.
if image_index < 3 then image_index += 0.3 //se subimagem for menor que 3, avan�a com velocidade de 0.3 (s� tem 3 subimagem)
}
if keyboard_check_released(vk_down) and gravity = 0 then sobe_image = true
if sobe_image = true and gravity = 0 then
{
agacha = false
sprite_index=spr_super_sonicabaixa; sobe_image2 = false
if image_index > 0.3 then image_index -= 0.3
//se for > que 0.3 significa que a imagem avan�ou (teclei), ent�o ao soltar a tecla, a subimagem decai com velocidade de 0.3
if image_index<0.3 then {sprite_index = spr_super_sonicparado;image_speed=0}
}
//olha pra cima
if keyboard_check(vk_up) and gravity = 0 and acelera<=0 and acelera_esq<=0 and global.plataforma=false then
{
time=0
parado = true ; olha = true
sprite_index = spr_super_olhando_cima ; image_speed = 0 ; sobe_image2 = false; sobe_image = false
//n�o quero que "spr_olhando_cima" sofra loop, ent�o os c�digos "index" abaixo
if image_index < 3 then image_index += 0.3 //se subimagem for menor que 3, avan�a com velocidade de 0.3 (s� tem 3 subimagem)
}
if keyboard_check_released(vk_up) and gravity = 0 then sobe_image2 = true ;
if sobe_image2 = true and gravity = 0 then
{
olha = false
sprite_index=spr_super_olhando_cima; sobe_image = false
if image_index > 0.3 then image_index -= 0.3
//se >0.3 significa que a imagem avan�ou (teclei), ent�o ao soltar a tecla, a subimagem decai com velocidade de 0.3
if image_index<0.3 then {sprite_index = spr_super_sonicparado;image_speed=0}
}
//---------------------------------------------------------------------------------------
//SPRITES (aqui, as mudan�as s�o baseadas nas a��es dos movimentos e velocidade do "player".)
//Acelera direita ou esquerda,quanto maior a velocidade do player, mais rapida fica a sprite,at� que muda p/"spr_soniccorre"
if acelera < 0 or acelera_esq < 0 and gravity = 0 then {sprite_index = spr_sonicparado} else
if acelera > 0.2 and acelera < 2 or acelera_esq > 0.2 and acelera_esq < 2 and gravity = 0 then
{sprite_index = spr_super_acelera ; image_speed = 0.15 ; parado = true ; sobe_image = false;sobe_image2 = false} else
if acelera > 2 and acelera < 7 or acelera_esq> 2 and acelera_esq < 7 and gravity = 0 then
{sprite_index = spr_super_acelera ; image_speed = 0.25 ; parado = true ; sobe_image = false;sobe_image2 = false} else
if acelera > 7 and acelera < 15 or acelera_esq > 7 and acelera_esq < 15 and gravity = 0 then
{sprite_index = spr_super_acelera ; image_speed = 0.6 ; parado = true ; sobe_image = false;sobe_image2 = false} else
if acelera > 15 and acelera < 21 or acelera_esq> 15 and acelera_esq < 21 and gravity = 0 then
{sprite_index = spr_super_corre ; image_speed = 0.6 ; parado = true ; sobe_image = false;sobe_image2 = false}
if acelera > 0.1 and acelera < 0.2 or acelera_esq> 0.1 and acelera_esq < 0.2 and gravity = 0 then
{sprite_index = spr_super_sonicparado}
else
//rola direita ou esquerda
if acelera > 0 and acelera < 2 or acelera_esq > 0 and acelera_esq < 2 and keyboard_check(vk_down) then
{sprite_index = spr_super_sonicpula ; image_speed = 0.1 ; agacha = true ; desacelera = true;desacelera_esq = true} else
if acelera > 2 and acelera < 7 or acelera_esq > 2 and acelera_esq < 7 and keyboard_check(vk_down) then
{sprite_index = spr_super_sonicpula ; image_speed = 0.2 ; agacha = true ; desacelera = true;desacelera_esq = true} else
if acelera > 7 and acelera < 15 or acelera_esq > 7 and acelera_esq < 15 and keyboard_check(vk_down)then
{sprite_index = spr_super_sonicpula ; image_speed = 1 ; agacha = true ; desacelera = true;desacelera_esq = true} else
if acelera > 15 and acelera < 21 or acelera_esq > 15 and acelera_esq < 21 and keyboard_check(vk_down)then
{sprite_index = spr_super_sonicpula ; image_speed = 2 ; agacha = true ; desacelera = true;desacelera_esq = true} else
//freia direita
if keyboard_check(vk_right)and trava_dir = false and acelera_esq > 0 and gravity = 0 then
{sprite_index = spr_super_derrapa ; image_speed = 0.3;sound_play(snd_sonic_derrapa)}
else
//freia esquerda
if keyboard_check(vk_left)and trava_esq = false and acelera > 0 and gravity = 0 then
{sprite_index = spr_super_derrapa ; image_speed = 0.3;sound_play(snd_sonic_derrapa)}
//UF�! ACABOU.
//--------------------------------------------------------------------------------------------
//Quando estava parado e apertava p/ direita e vira
//lado direita
if not keyboard_check(vk_right)and acelera=0 and image_xscale=1 and gravity=0 and sobe_image=false and sobe_image2=false
and not keyboard_check(vk_down)and not keyboard_check(vk_up) and not place_free(x+18,y+8)and not place_free(x+20,y+
and not place_free(x-18,y+8)and not place_free(x-20,y+8)and time<150 then {sprite_index = spr_super_sonicparado}else
//lado esquerda
if not keyboard_check(vk_left)and acelera_esq=0 and image_xscale=-1 and gravity=0 and sobe_image=false and sobe_image2=false
and not keyboard_check(vk_down)and not keyboard_check(vk_up)and not place_free(x-18,y+8)and not place_free(x-20,y+
and not place_free(x+18,y+8)and not place_free(x+20,y+8)and time<150 then {sprite_index = spr_super_sonicparado}
}//fechamento da super_variavel
matheus870- Data de inscrição : 23/12/2011
Reputação : 1
Número de Mensagens : 118
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: gravidade ou algo do tipo
nossa,que codigo gigante,não consegui localizar o erro,acho que o erro tá na mask do sprite
The Wizard- Games Ranking :
Notas recebidas : B
Data de inscrição : 24/03/2010
Reputação : 17
Número de Mensagens : 1129
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 1
x 0 x 0 x 0
Re: gravidade ou algo do tipo
Guga games escreveu:nossa,que codigo gigante,não consegui localizar o erro,acho que o erro tá na mask do sprite
Bingo! tinha uma sprite junto do outro playe chamada mascara_player, como eu nunca mechi com isso a princípio eu achei que fosse inútil no jogo até porque não achei nada se referindo a ele.
como eu insiro a mask?
matheus870- Data de inscrição : 23/12/2011
Reputação : 1
Número de Mensagens : 118
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: gravidade ou algo do tipo
no create,coloque um mask_index para definição,este é o melhor metodo e não falha.
EX :
Mas procure estudar e entender o código,por que senão seujogo terá muitos bugs.
flws
EX :
- Código:
mask_index = spr_minha_mascara //substitua minha mascara pelo nome de sprite da outra mascara
Mas procure estudar e entender o código,por que senão seujogo terá muitos bugs.
flws
Re: gravidade ou algo do tipo
vlw funcionou agora por fome de aprender, porque essa mask é tão importante no jogo?
matheus870- Data de inscrição : 23/12/2011
Reputação : 1
Número de Mensagens : 118
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: gravidade ou algo do tipo
O mask é usado para definir a colisão.Sem mask a colisão fica ruin se a sprite do objeto for com curvas.Daí o uso de Mask .O Mask melhora a colisão ;)
Re: gravidade ou algo do tipo
aproveitando o tópico que fala sobre gravidade do personagem, alguém sabe como posso fazer efeitos de água?
matheus870- Data de inscrição : 23/12/2011
Reputação : 1
Número de Mensagens : 118
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: gravidade ou algo do tipo
haha eu sei,faz assim no step
- Código:
if na_agua=true
{gravity=0.5}
else
{gravity=1}
- Código:
na_agua=true
- Código:
na_agua=false
- Código:
na_agua=false
The Wizard- Games Ranking :
Notas recebidas : B
Data de inscrição : 24/03/2010
Reputação : 17
Número de Mensagens : 1129
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 1
x 0 x 0 x 0
Tópicos semelhantes
» Uncolision ou algo do tipo!!
» Algo avançado, tipo iluminação!
» Ajuda ( Error) Ou algo do tipo
» Algo seguir o jogador ( Nois )
» como empurrar algo????
» Algo avançado, tipo iluminação!
» Ajuda ( Error) Ou algo do tipo
» Algo seguir o jogador ( Nois )
» como empurrar algo????
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos