// VbgɊւ邻̑̃CN[hpXNvgł
// ėp֐ȂǂɊi[܂

//---------------------------------------------------------------------------------

//ėp֐ -trueԂm-
//   @prob		: trueom
//   @return		: mɂtrueofalseo 
function fPer(let prob){
	if(rand(0,100) < prob){
		return true;
	}else{
		return false;
	}
}

//ėp֐ -ǂɓĂ邩̔-
//   @nX,nY		: 肷W
//   @rad		: ͈͓̔Ƃ锼a
//   @return		: ǂ̕ǂƔ˂Ă邩 [1]=> [2]=> [3]=>E [4]=> [0]=>ǂ̕ǂɂĂȂ (Dx)
function IsStageClip(let nX,let nY,let rad){
	//[ǂ
	if(nX-rad < GetClipMinX){
		return 1;
	}
	//[ǂ
	if(nY-rad < GetClipMinY){
		return 2;
	}
	//E[ǂ
	if(nX+rad > GetClipMaxX){
		return 3;
	}
	//[ǂ
	if(nY+rad > GetClipMaxY){
		return 4;
	}else{
		return 0;
	}
}

//ėp֐ -tO𔽓]֐-
//   @flag		: true܂false
function Toggle(let flag){
	//ꂾP!Ŕے肵Ⴆ΂ȂEEE
	//ċCt̂͂̊֐B͂ЂǂB
	return !flag;
}

//ėp֐ -xƊpxwx߂-
//   @speed		: x
//   @angle		: px
function SAtoS_X(let speed,let angle){
	return cos(angle)*speed;
}

//ėp֐ -xƊpxxx߂-
//   @speed		: x
//   @angle		: px
function SAtoS_Y(let speed,let angle){
	return sin(angle)*speed;
}

//ėp֐ -ŏlԂ-
//   @value1		: lP
//   @value2		: lQ
function Min(let value1, let value2){
	return [value1, value2][value1 >= value2];
}

//ėp֐ -őlԂ-
//   @value1		: lP
//   @value2		: lQ
function Max(let value1, let value2){
	return [value1, value2][value1 <= value2];
}

//ėp֐ -0`360̃_Ȓl-
function rand360(){
	return rand(0, 360);
}

//ėp֐ -vZ-
function Dist(let nX1, let nY1, let nX2, let nY2){
	return ((nX2 - nX1)^2 + (nY2 - nY1)^2 )^0.5;
}

//ėp֐ -xNg̉ZF-
function VectorAdd_r(let r1, let t1, let r2, let t2){
	let rX = cos(t1)*r1 + cos(t2)*r2;
	let rY = sin(t1)*r1 + sin(t2)*r2;
	return ((rX)^2 + (rY)^2 )^0.5;
}

//ėp֐ -xNg̉ZFpx-
function VectorAdd_t(let r1, let t1, let r2, let t2){
	let rX = cos(t1)*r1 + cos(t2)*r2;
	let rY = sin(t1)*r1 + sin(t2)*r2;
	return atan2(rY,rX);
}

//ėp֐ -wxƂxx瑬x߂-
//   @speed		: x
//   @angle		: px
function SXYtoS(let speedX,let speedY){
	return (speedX^2 + speedY^2)^0.5;
}

//ėp֐ -[U[L[܂Œ~-
function SteptoUserKey(){
	while(GetKeyState(VK_USER) != KEY_PUSH){ yield; }
}
