animação n cancela
Enviado: Qua Jan 24, 2024 6:34 pm
algum abençoado pode me ajudar e fiz um arco para meu jogo de rpg ele atira para os 4 lados cima baixo esquerda e direita estou usando esse comando no arco
function scr_personagem_arco(){
dir = floor((point_direction(x, y, mouse_x, mouse_y) + 45)/90);
switch dir{
//direta
default:
sprite_index = spr_personagem_arco_direita_arma;
break;
//cima
case 1:
sprite_index = spr_personagem_arco_cima_arma;
break;
//esquerda
case 2:
sprite_index = spr_personagem_arco_esquerda_arma;
break;
// baixo
case 3:
sprite_index = spr_personagem_arco_baixo_arma;
break;
}
if fim_da_animacao(){
image_index = 4;
if mouse_check_button_released(mb_left) {
if image_index >= 4{
var _dir = point_direction(x, y, mouse_x, mouse_y);
var _xx = lengthdir_x(5, _dir);
var _yy = lengthdir_y(5, _dir);
var _inst = instance_create_layer( x + _xx, y + _yy, "Instances", obj_flecha);
_inst.direction = _dir;
_inst.image_angle = _dir;
_inst.speed = 12;
estado = scr_personagem_andando;
}
}
}else{
estado = scr_personagem_andando;
}
mais o fim da animação parou de funcionar estou usando esse code
function fim_da_animacao(){
var _sprite = image_index;
var _image = image_index;
if(argument_count > 0) _sprite = argument[0];
if(argument_count > 1) _image = argument[1];
var _type = sprite_get_speed_type(sprite_index);
var _spd = sprite_get_speed(sprite_index)*image_speed;
if(_type == spritespeed_framespersecond)
_spd = _spd/room_speed;
if(argument_count > 2) _spd = argument[2];
return _image = _spd >= sprite_get_number(_sprite );
}
function scr_personagem_arco(){
dir = floor((point_direction(x, y, mouse_x, mouse_y) + 45)/90);
switch dir{
//direta
default:
sprite_index = spr_personagem_arco_direita_arma;
break;
//cima
case 1:
sprite_index = spr_personagem_arco_cima_arma;
break;
//esquerda
case 2:
sprite_index = spr_personagem_arco_esquerda_arma;
break;
// baixo
case 3:
sprite_index = spr_personagem_arco_baixo_arma;
break;
}
if fim_da_animacao(){
image_index = 4;
if mouse_check_button_released(mb_left) {
if image_index >= 4{
var _dir = point_direction(x, y, mouse_x, mouse_y);
var _xx = lengthdir_x(5, _dir);
var _yy = lengthdir_y(5, _dir);
var _inst = instance_create_layer( x + _xx, y + _yy, "Instances", obj_flecha);
_inst.direction = _dir;
_inst.image_angle = _dir;
_inst.speed = 12;
estado = scr_personagem_andando;
}
}
}else{
estado = scr_personagem_andando;
}
mais o fim da animação parou de funcionar estou usando esse code
function fim_da_animacao(){
var _sprite = image_index;
var _image = image_index;
if(argument_count > 0) _sprite = argument[0];
if(argument_count > 1) _image = argument[1];
var _type = sprite_get_speed_type(sprite_index);
var _spd = sprite_get_speed(sprite_index)*image_speed;
if(_type == spritespeed_framespersecond)
_spd = _spd/room_speed;
if(argument_count > 2) _spd = argument[2];
return _image = _spd >= sprite_get_number(_sprite );
}