inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

홍정모의 게임 만들기 연습 문제 패키지

2.6 싱글톤 패턴 - 사운드 엔진 예제 singleton

엔진음과 포탄음이 동시에 재생되지 않는 문제해결

207

esissi

작성한 질문수 2

0

아래와 같이 SoundEngine_Singleton.h의 void playSound(const std::string & sound_name)함수에 const bool& _simultaneus=false 파라메타를 추가하였고 
if (!_simultaneus) 
	if (is_playing) return;
위와 같이 조건을 추가하여 포탄에 대해서만 중첩된 사운드가 재생되게 하였습니다.

포탄을 연속으로 쏘면 의도한 대로 포탄효과음이 연속으로 잘 재생 됩니다.(missile음은 제거하였음) 
하지만 탱크를 움직이면서 (엔진음이 나는 상태에서) 포탄이 연속으로 발사되면 소리가 잘 나지 않는 문제가 발생합니다.

엔진음이 재생중인 상태에서 새로이 포탄음이 재생되지 못하게 되는것 같은데... 
어떻게 해결방법에 접근해야 할런지 가르침을 부탁드립니다.
void playSound(const std::string & sound_name,const bool& _simultaneus=false)
{
	if (sound_map.count(sound_name) <= 0) {
		std::cout << sound_name << " isn't initialized." << std::endl;
		exit(-1);
	}

	const auto & sound_ptr = sound_map[sound_name];
	auto & channel_ptr = channel_map[sound_ptr];

	bool is_playing = false;
	result = channel_ptr->isPlaying(&is_playing);
	if (!_simultaneus) // play overlabed sound at the same time
		if (is_playing) return; // don't play if this is already playing

	result = system->playSound(sound_ptr, 0, false, &channel_ptr);

	if (result != FMOD_OK) {
		std::cout << "system->playSound() fail" << std::endl;
		exit(-1);
	}
}

C++ OpenGL oop

답변 1

0

안소

안녕하세요.

제가 교수님대신 답변 드리는 일을 하고 있는데, 이 <게임 만들기 연습 문제 패키지> 강의는 제가 수강한지 오래되어 많이 까먹은 상태입니다. 😅 그래서 뭔가 세세하게 짚어드리기엔 제가 다시 공부를 하고 코드를 전부 리뷰해야하는 상황이네요 ㅠㅠ 

그렇지만 이 강의를 수강할 때 대부분의 연습문제를 풀이하여 블로그에 정리해놨었는데요, 질문 주신 내용인 "탱크가 엔진음을 내며 이동하는 상태에서 동시에 포탄음을 내는" 것도 구현하여 코드와 결과 유튜브로 포스팅해놓은 적이 있습니다.

https://ansohxxn.github.io/c++%20games/chapter1-5-prac/

제 블로그의 해당 포스트 링크입니다. 엔진음 내면서 포탄 쏘는 부분에 대한 구현 코드를 정리해놓았으니 코드 참고해보셨으면 좋겠습니다! 잘 해결 되셨으면 좋겠네요

깃허브에서 받은 코드가 왜 강의코드랑 다를까요

0

72

1

Mac vscode 으로 시작하시려는 분들께

0

311

1

마우스 좌우 버튼을 동시에 눌렀을 때의 원의 위치

0

423

1

정답은 어디서볼수있나요?

1

346

2

예제코드

1

490

2

따배C++ 몇 강까지 학습한 후 수강가능 할까요?

1

642

1

15:00 부근 질문 있습니다.

0

418

1

(20.4 참고) 20.4에 해당하는 가이드 페이지가 어디있는지 모르겠습니다.

0

371

1

multimap 질문

0

352

2

도형들의 움직임이 너무 빠릅니다...

0

463

1

vcpkg 설치를 했는데

0

682

2

mutiple bullet 관련 질문 드립니다.

0

479

2

실행 후 화면 꺼짐

0

578

2

예제 파일 실행 시, 에러

1

555

1

아직 못풀어도 괜찮을까요?

0

499

1

코드 열었을 때 오류

1

807

3

코딩공부에 대해서 막히는부분

0

334

1

vcpkg 설치 오류

0

591

2

랜덤값 질문입니다.

0

425

1

vcpkg 다운로드에 문제를 겪고있습니다

1

423

1

if 문에 >= 대신 == 넣으면 작동을 하지 않는 이유가 무엇인가요.

0

278

1

multiple bullet 문제

0

309

1

프로그램 실행 순서 질문

0

269

1

2.2.2 상속으로 깔끔하게 init 메서드 질문

0

222

1