function fam(x,y,life,size,type,collision){
	let obj = ObjEnemy_Create(OBJ_ENEMY);
	let shot;
	let c = 0;
	ObjEnemy_Regist(obj);
	ObjMove_SetPosition(obj,x,y);
	ObjEnemy_SetLife(obj,life);
	ObjEnemy_SetDamageRate(obj,100,100);
	Control;
	DrawFam(1);
	return obj;
		task Control{	
			while(!Obj_IsDeleted(obj) && !Obj_IsDeleted(objBoss)){
			c++;
			ObjRender_SetY(obj,ObjMove_GetY(obj)+0.1*sin(c*5));
			if(c%7==0){DrawFam(0);}
			if(ObjEnemy_GetInfo(obj,INFO_LIFE) <=0){
			PlaySound("famdie",90,0);
			TExplosionA(ObjMove_GetX(obj),ObjMove_GetY(obj),10,0.3);
			Obj_Delete(obj);
			}
			if(ObjMove_GetX(obj)<-64 || ObjMove_GetX(obj)>480 || ObjMove_GetY(obj)<-64 || ObjMove_GetY(obj)>528 && collision == true){
			Obj_Delete(obj);
			}
			if(collision==true){ObjEnemy_SetIntersectionCircleToShot(obj,ObjMove_GetX(obj),ObjMove_GetY(obj),18);
			ObjEnemy_SetIntersectionCircleToPlayer(obj,ObjMove_GetX(obj),ObjMove_GetY(obj),12);}
			yield;
			}
			Obj_Delete(obj);
		}
		task DrawFam(p){
			let fam=ObjPrim_Create(OBJ_SPRITE_2D);
			let px = 64;
			let py = 0;
			let img=GCSD~"img/Fam.png";
			ObjPrim_SetTexture(fam,img);
			if(type==1){ObjSprite2D_SetSourceRect(fam,48,0,84,50);}
			if(type==2){ObjSprite2D_SetSourceRect(fam,12,48,43,92);}
			if(type==3){ObjSprite2D_SetSourceRect(fam,89,48,121,90);}
			if(type==4){ObjSprite2D_SetSourceRect(fam,18,110,50,156);}
			if(type==5){ObjSprite2D_SetSourceRect(fam,80,106,118,152);}
			ObjRender_SetPosition(fam,x,y,0);
			ObjRender_SetScaleXYZ(fam,size,size,0);
			ObjSprite2D_SetDestCenter(fam);
			ObjRender_SetBlendType(fam,BLEND_ALPHA);
			if(p==0){
				ObjRender_SetBlendType(fam,BLEND_ADD_ARGB);
				Obj_SetRenderPriority(fam,0.3);
				ascent(i in 0..25){
				if(Obj_IsDeleted(obj) || Obj_IsDeleted(objBoss)){Obj_Delete(fam);}
				ObjRender_SetPosition(fam,ObjMove_GetX(obj),ObjMove_GetY(obj),0);
				ObjRender_SetScaleXYZ(fam,size+i*0.05,size+i*0.05,0);
				ObjRender_SetColor(fam,125-i*5.1,0,125-i*5.1);
				yield;
				}
			Obj_Delete(fam);
			}
			if(p==1){
				while(!Obj_IsDeleted(obj) && !Obj_IsDeleted(objBoss)){
				ObjRender_SetPosition(fam,ObjMove_GetX(obj),ObjMove_GetY(obj),0);
				yield;
				}
				Obj_Delete(fam);
			}
		}
	}