colocar todo scripe em step
//GRAVIDADE
if place_free(x,y+2){gravity=1} //Se estiver livre de colisões 2 pixels abaixo, a gravidade será 1
else //senão
gravity=0 //a gravidade será 0
//MOVIMENTAÇÃO
//DIREITA
if keyboard_check(vk_right) //Se a tecla direita for pressionada
{if place_free(x+5,y){x+=5} //e se estiver livre de colisões 5 pixels a frente, andará 5 pixels para frente.
image_xscale=1} //e o sprite olhará para a direita
//ESQUERDA
if keyboard_check(vk_left) //Se a tecla esquerda for pressionada
{if place_free(x-5,y){x-=5} //e se estiver livre de colisões 5 pixels atras, voltará 5 pixels.
image_xscale=-1} //e o sprite olhará para a esquerda
//PULO
if keyboard_check_pressed(vk_up) //Se a tecla cima for pressionada
{if!place_free(x,y+2){vspeed=-12}} //e se não estiver livre de colisões 2 pixels abaixo, a velocidade vertical irá ser -12, ou seja, ele pulará.
Movimentação avançada
create
direita = truestep
pe_no_chao = false
andando = false
abaixado = false
atacando = false
subindo = false
sobe = false
image_speed = 0.15
script 1
gravidade(obj_player,0.75,pe_no_chao)script 2
//movimentasao
if (keyboard_check(vk_right) and abaixado = false and atacando = false){//verifica se a seta direita foi apertada e não esta abaixado e não esta atacando
hspeed = 5;direita = true;andando = true
}else{// se não foi
if (keyboard_check(vk_left) and abaixado = false and atacando = false){ //verifica se a seta esquerda foi apertada e não esta abaixado e não esta atacando
hspeed = -5;direita = false ;andando = true
}else{// se não foi
hspeed = 0;andando = false
}
}
//abaixando
if keyboard_check(vk_down){//se for apertado para baixo
abaixado = true
}else{//se não for
abaixado = false
}
//atacando
if (keyboard_check_pressed(vk_space) and atacando = false and abaixado = false){// verifica se o espaço foi apertado e não se esta atacando e não esta abaixado
image_index = 0
atacando = true
alarm[0] = 20
}
//pulando
if keyboard_check_pressed(vk_up) and pe_no_chao = true and abaixado = false{//se for apertado para cima
vspeed = -9
pe_no_chao = false
}
if keyboard_check_released(vk_up) and vspeed <= 0{//se for apertado para cima
vspeed /= 2
}
if direita = true {//se para direita
if pe_no_chao = false{//se estiver pulando
if vspeed <= 0{//se estiver subindo
sprite_index = spr_dir_pul_sub
}else{//se estiver caindo
sprite_index = spr_dir_pul_cai
}
}else{//se nao estiver pulando
if abaixado = true{//se estiver baixo
sprite_index = spr_dir_aba
}else{//se não estiver para baixo
if atacando = true{//se estiver atacando
sprite_index = spr_dir_ata
}else{//se não estiver atacando
if andando = true{//se estiver andando
sprite_index = spr_dir_and
}else{//se não estiver andando
sprite_index = spr_dir_par
}
}
}
}
}else{//se não estiver para direta (para esquerda)
if pe_no_chao = false{//se estiver pulando
if vspeed <= 0{//se estiver subindo
sprite_index = spr_esq_pul_sub
}else{//se estiver caindo
sprite_index = spr_esq_pul_cai
}
}else{//se nao estiver pulando
if abaixado = true{//se estiver baixo
sprite_index = spr_esq_aba
}else{//se não estiver para baixo
if atacando = true{//se estiver atacando
sprite_index = spr_esq_ata
}else{//se não tiver atacando
if andando = true{//se estiver andando
sprite_index = spr_esq_and
}else{//se não estiver andando
sprite_index = spr_esq_par
}
}
}
}
}
E crie um script de gravidade
//DEFINIÇÕES DE GRAVIDADE
//#############################
if place_free(argument0.x,argument0.y)
{
argument0.argument2 = false
argument0.gravity = argument1
}
else
{
argument0.argument2 = true
argument0.gravity = 0
}
if (argument0.vspeed > 10) {argument0.vspeed = 10}
//#############################
Nenhum comentário:
Postar um comentário