Tuna
Member
I have been trying for a while now to draw a melee weapon on my character, but whenever I have its position change throughout an animation, the weapon sprite flashes, sometimes for multiple frames. As you can see in this recording, the sprite is normal when being drawn as a single frame (standing or ducking) but it looks bad when moving frame-by-frame (walking or attacking).
Here is the code in the draw event of obj_player. It controls all of the weapon drawing:
if sprite_index == spr_walk_sword_pistol{
if image_index == 0{
draw_sprite_ext(hold,0,x+(12*image_xscale),y-4,1,1,45*image_xscale,c_white,1);
}
if image_index == 1{
draw_sprite_ext(hold,0,x+(11*image_xscale),y-3,1,1,45*image_xscale,c_white,1);
}
if image_index == 2{
draw_sprite_ext(hold,0,x+(10*image_xscale),y-2,1,1,45*image_xscale,c_white,1);
}
if image_index == 3{
draw_sprite_ext(hold,0,x+(9*image_xscale),y-2,1,1,45*image_xscale,c_white,1);
}
if image_index == 4{
draw_sprite_ext(hold,0,x+(10*image_xscale),y-1,1,1,45*image_xscale,c_white,1);
}
if image_index == 5{
draw_sprite_ext(hold,0,x+(10*image_xscale),y-2,1,1,45*image_xscale,c_white,1);
}
//draw hand over weapon
draw_sprite_ext(spr_walk_sword_hand,image_index,x,y,image_xscale,1,0,c_white,1);
}
Here is the code in the draw event of obj_player. It controls all of the weapon drawing:
if sprite_index == spr_walk_sword_pistol{
if image_index == 0{
draw_sprite_ext(hold,0,x+(12*image_xscale),y-4,1,1,45*image_xscale,c_white,1);
}
if image_index == 1{
draw_sprite_ext(hold,0,x+(11*image_xscale),y-3,1,1,45*image_xscale,c_white,1);
}
if image_index == 2{
draw_sprite_ext(hold,0,x+(10*image_xscale),y-2,1,1,45*image_xscale,c_white,1);
}
if image_index == 3{
draw_sprite_ext(hold,0,x+(9*image_xscale),y-2,1,1,45*image_xscale,c_white,1);
}
if image_index == 4{
draw_sprite_ext(hold,0,x+(10*image_xscale),y-1,1,1,45*image_xscale,c_white,1);
}
if image_index == 5{
draw_sprite_ext(hold,0,x+(10*image_xscale),y-2,1,1,45*image_xscale,c_white,1);
}
//draw hand over weapon
draw_sprite_ext(spr_walk_sword_hand,image_index,x,y,image_xscale,1,0,c_white,1);
}
Last edited: