19살 예비 웹개발자 개발일지

C

[C] C언어 배경음악

갱's 개발 모험 2021. 6. 18. 09:38
728x90

지난번 줄다리기 게임에서 진짜 게임 같도록 업그레이드를 할 예정이다

그래서 생각난게 배경음과 효과음!!!

 

준비물!! 마음에 드는 무료 BGM을 다운로드하여야 함!

 

우선 배경음악을 하기 위해선 필요한 모듈!

#include <mmsystem.h>;
#pragma comment(lib, "winmm.lib")

 

이 두개의 모듈을 사용해 배경음악을 설정해보려 한다.

지난번에 올렸던 줄다리기 게임을 예시로 보여주겠다.

줄다리기 게임을 모른다면 아래 링크 참고 부탁!

https://newchoi7113.tistory.com/40

 

[C] 줄다리기 게임

IT쇼 콘솔 게임부분으로 나가게 되어서 "CPU_KINGDOM" 이란 이름으로 3학년, 2학년 친구들과 프로젝트를 진행했다. 총괄을 맡으면서 할 일이 많아서 조금 힘들긴 했지만 완성된 작품을 보니 뿌듯했다

newchoi7113.tistory.com

 

먼저 가장 중요한 두 코드를 설명하자면 

PlaySound(TEXT("push.wav"), NULL, SND_FILENAME | SND_ASYNC | SND_LOOP);

PlaySound(NULL, 0, 0);

PlaySound(TEXT("push.wav"), NULL, SND_FILENAME | SND_ASYNC | SND_LOOP);

// 노래 종료
PlaySound(NULL, 0, 0);

TEXT안에 자신의 bgm파일을 넣어주면 된다. 이때 이 모듈은 wav파일만 지원하기 때문에 mp3파일이면 변환해야 한다.

인터넷에 변환 치면 많이 뜨니 구글링 해보기!

 

PlaySound(TEXT("push.wav"), NULL, SND_FILENAME | SND_ASYNC | SND_LOOP);

여기서 NULL값은 고정, SND_ASYNC은 노래를 시작하는 걸로 알고 있다.(나도 아직 정확히 이해하지 못함 ㅠㅠ)

SND_LOOP는 계속해서 무한반복!

 

PlaySound(NULL, 0, 0)를 만나지 않는 이상 콘솔을 종료 전까지 실행된다.

 

좀 더 자세한 설명은 공식문서를 참고하면 꿀!

https://docs.microsoft.com/en-us/previous-versions/dd743680(v=vs.85) 

 

PlaySound function (Windows)

PlaySound function 06/06/2016 4 minutes to read In this article --> The PlaySound function plays a sound specified by the given file name, resource, or system event. (A system event may be associated with a sound in the registry or in the WIN.INI file.) Sy

docs.microsoft.com

 

// 게임 시작 메인 함수
void pushpull() {
	system("cls");
	PlaySound(TEXT("push.wav"), NULL, SND_FILENAME | SND_ASYNC | SND_LOOP);
	while (1) {
		switch (game()) {
		case GAMESTART:
			x = 40;
			start_game();
			break;

		case EXIT:
			PlaySound(NULL, 0, 0);
			main();
			
			break;
		}
	}
	return 0;
}

pushpull 함수가 실행되면 기본적으로 push.wav파일이 실행된다 그 후 만약 EXIT값이 선택된다면

PlaySound(NULL, 0, 0) 값으로 노래가 종료된다.

 

728x90

'C' 카테고리의 다른 글

[C] 줄다리기 게임  (0) 2021.06.08