void PowerShotReleased(
	bool button,    // 버튼 상태 (눌렸으면 true)
	int min_power,  // 에너지 샷이 발사될 최소한의 파워
	int max_power   // 최대 파워
) {
	// 모은 에너지
	static int power=0;

	// 버튼을 누르고 있지 않을 때:
	// 에너지를 모음
	if (!button && power<max_power) power++;
	
	// 버튼을 누르고 있을 때:
	// 모은 에너지가 0보다 크다면 샷을 발사하고 에너지를 0으로 되돌림.
	if (button && power>0) {
		
		// 최대 파워일 때:
		// 특별한 샷을 발사.
		// 구체적인 처리는 MaxShot 함수에서 수행하기로 함.
		if (power==max_power) MaxShot(); else
		
		// 최소 파워 이상, 최대 파워 미만일 경우:
		// 모아둔 에너지에 해당하는 공격력의 에너지 샷을 발사함.
		// 구체적인 처리는 BigShot 함수에서 수행하기로 함.
		if (min_power<=power) BigShot(power);
		
		// 에너지를 0으로 되돌림.
		power=0;
	}
}
Ejemplo n.º 2
0
//==============================================================
// 세미 오토 연사
void CMover::SemiAutoShot(
	bool button,    // 버튼 상태 (눌렸으면 true)
	int min_power,  // 에너지의 최소치
	int max_power,  // 에너지의 최대치
	int max_gauge,  // 연사 게이지의 최대치
	int& power,     // 모은 에너지
	int& gauge      // 연사 게이지
) {
	// 버튼을 누르고 있을 때:
	if (button) {
		
		// 에너지가 부족할 경우:
		// 보통 샷을 발사.
		if (power<min_power) Shot();
	
		// 파워를 늘리고, 연사 게이지를 최대로 함.
		if (power<max_power) power++;
		gauge=max_gauge;
	}
	
	// 버튼을 떼고 있을 때:
	else {
		
		// 에너지가 충분할 경우:
		// 에너지 샷을 발사:
		// 모아둔 에너지가 최대치에 도달했을 때는 특별한 샷을 발사.
		if (min_power<=power) {
			if (power==max_power) MaxShot(); 
				else BigShot(power);
			gauge=0;
		}
		
		// 연사 게이지가 0보다 클 경우:
		// 보통 샷을 발사하고, 연사 게이지를 1 감소시킴.
		if (gauge>0) {
			Shot();
			gauge--;
		}

		// 에너지를 0으로 함.
		power=0;
	}
}