Okay Lucas, Ihad somes problems with your lib (I don't understand anything).
So, I worked myself Ichirin animation, but I have problems:
task AnimateBoss
{
let int = false;
let count = 0;
let count2 = 0;
let count3 = 0;
while(Obj_IsDeleted(objichirin) == false)
{
if(CheckDirection(objichirin, "right") == true){ObjRender_SetScaleXYZ(objichirin, 1, 1, 1)}
if(CheckDirection(objichirin, "left") == true){ObjRender_SetScaleXYZ(objichirin, -1, 1, 1)}
if(ObjMove_GetSpeed(objichirin) == 0 && int == true)
{
if(count3==5){ObjSprite2D_SetSourceRect(objichirin, 192, 96, 256, 192);}
if(count3==10){ObjSprite2D_SetSourceRect(objichirin, 128, 96, 192, 192);}
if(count3==15){ObjSprite2D_SetSourceRect(objichirin, 64, 96, 128, 192);}
if(count3==20){ObjSprite2D_SetSourceRect(objichirin, 0, 96, 64, 192);}
count3++;
int = false;
}
if(ObjMove_GetSpeed(objichirin) == 0)
{
if(count2==10){ObjSprite2D_SetSourceRect(objichirin, 0, 0, 64, 96);}
if(count2==20){ObjSprite2D_SetSourceRect(objichirin, 64, 0, 128, 96);}
if(count2==30){ObjSprite2D_SetSourceRect(objichirin, 128, 0, 192, 96);}
if(count2==40){ObjSprite2D_SetSourceRect(objichirin, 192, 0, 256, 96);}
count=0;
count3 = 0;
}
if(ObjMove_GetSpeed(objichirin) > 0)
{
if(count==5){ObjSprite2D_SetSourceRect(objichirin, 0, 96, 64, 192);}
if(count==10){ObjSprite2D_SetSourceRect(objichirin, 64, 96, 128, 192);}
if(count==15){ObjSprite2D_SetSourceRect(objichirin, 128, 96, 192, 192);}
if(count==20){ObjSprite2D_SetSourceRect(objichirin, 192, 96, 256, 192);}
count++;
int = true;
}
if(count2>40)
{
count2=0;
}
count2++;
yield;
}
}
"if(ObjMove_GetSpeed(objichirin) == 0 && int == true)" is the condition for the reverse move of ichirin but nothing hapened ichirin go to idle directly next the normal move.