Problema com o tiro
Enviado: Sex Ago 16, 2024 3:28 pm
Olá estou com problemas no código de tiro, ele simplesmente cria varias vezes o tiro e ele não atira pro lado contrario quando viro só pra um lado, ele tbm atira varios tiros de uma vez. Por favor me ajudem.
Segue o código abaixo:
player_create:
step_player:
esqueci de falar, eu uso o switch pra fazer os estados.
Segue o código abaixo:
player_create:
Código: Selecionar todos
hspd= 0;
vspd= 0;
vel= 2;
velj= 5;
grv= 0.3;
chao= 0;
estado= "parado";
Código: Selecionar todos
var _right, _left, _jump, _shoot;
_right= keyboard_check(ord("D"));
_left= keyboard_check(ord("A"));
_jump= keyboard_check_pressed(ord("J"));
_shoot= keyboard_check_pressed(ord("K"));
hspd= (_right - _left) * vel;
chao= place_meeting(x,y + 1,obj_wall);
if(!chao){
vspd += grv;
}
switch(estado){
case "parado":
{
sprite_index= spr_player;
if(_right or _left){
estado= "move";
image_xscale= sign(hspd);
}else if(_jump){
estado= "pulo";
vspd= -velj;
}else if(_shoot){
estado= "atk";
hspd= 0;
image_index= 0;
}
break;
}
case "move":
{
sprite_index= spr_player_wlk;
if(hspd= 0){
estado= "parado";
image_index= 0;
}else if(_jump){
estado= "pulo";
vspd= -velj;
}else if(_shoot){
estado= "atk";
hspd= 0;
image_index= 0;
}
break;
}
case "pulo":
{
if(vspd > 0){
sprite_index= spr_player_fall;
}else if(vspd < 0){
sprite_index= spr_player_jump;
}
if(image_index > image_number-1){
image_index= image_number-1;
}
if(chao){
estado= "parado";
}
break;
}
case "atk":
{
sprite_index= spr_player_shoot;
if(image_index > 2){
var _t= instance_create_layer(x+18,y-19,layer,obj_shoot);
_t.direction= direction;
_t.speed= 3;
}
if(image_index > image_number-1){
estado= "parado";
}
break;
}
}