흠.. 이건 그냥 개발하면서 제가 해결을 못한 부분일 수도 있으며!
단지 해결방식을 찾았는데! 이게 어떤 방식으로 구동이 되는건지 알수는 없습니다! 단지 이렇게도
해결할 수 있구나!? 라고 보시면 되겠슴다~
일단 기본적으로 저도 책에서 나온 '코코스덴션' 을 써서 Effect와 Background 사운드 효과를 지정했습니다~
간혹 게임을 하시다보면 애니메이션과, 배경음 싱크와 맞아서 떨어져야 할 경우가 있습니다~
게임 플레이도중, 일시정지를 하면 애니메이션을 동작하던 오브젝트들도 멈춰야하고~ 음악도 멈춰야하겠죠?
근대 . 문제는 다시 재개를 했을 경우, 애니메이션과 노래의 씽크가 점점 밀리는 현상입니다.
audioEngine->playBackgroundMusic(<#const char *pszFilePath#>)
어떤 함수인지는 아시리라 믿슴다~ 이거 모르시믄 안되여. 바로 배경음을 재생하는 거죠? 물론 하나의 배경음만
재생할 수 있는 함수이기도 하구요. 하지만 저 위 함수를 쓰면 말씀드렸듯이, 일시정지와 재개를 계속 반복하다보면
애니메이션은 아직 동작도 못했는데, 사운드는 계속 조금씩 나오면서 싱크가 안맞는 현상이 일어나게 됩니다!
애니메이션으로 구현한 오브젝트 뿐만이 아닌, setTexture()로 이미지만 교체하는 형식의 애니메이션 구현도 마찬가지입니다.
여기서 그럼 싱크를 어떻게 맞춰야하는가?? 뭐..저도 Animation으로 하기도 해보고..별짓 정말 다해봤는데..
못찾았습니다-_ㅠ 왜 밀리는지 도저히 모르겠더라구요. (물론 지금도 모릅니다...)
하지만 이가 없으면 잇몸으로 씹는다구.. 될대로 되라 하면서 좌절하던 찰나에 그냥 어차피 사운드 재생인데..
audioEngine->playEffect(<#const char *pszFilePath#>)
이렇게 재생하면 안될까?? 라고 해서 재생을 했습니다. 뭐..어차피 이펙트냐..배경음이냐 차이일뿐 사운드 재생은 똑같고..
이펙트 함수로 배경음을 재생한 결과. 애니메이션이던..이미지 교체방식이던 스케쥴러로 애니메이션을 구현했을 경우
playEffect 함수로 구현하면 싱크가 밀리는 현상이 없습니다. =_=..이건 엔진문제라고 하던대.. 왜그런지는 저도 모르겠어영
혹시나 [애니메이션과 + 배경음] 이 일치하여 진행되어야 할 경우..인트로나 씬 애니메이션이 되겠죠? 그런거 하실 때..
다른 방법으로 구현도 해보시다가! 안되시면 이 방법을 쓰는것도 괜찮을 것 같습니다~ Effect함수는 여러개를 동시에
실행할 수도 있구요^^~룰루루루루~~
첫댓글 이런걸 실전적 지식이라고 할수 있겠죠..뭔가 이론적으로 깔끔하다던지 뭐 그런건 아니지만 ^^;;; 항상 그런 깔끔한 방법만 사용할 수도 없고, 그런 방법만으론 해결되지 않는 케이스가 실전 개발에서는 비일비재하죠..
구동에 문제만 없으면 된다는 일념하나로..꾸역꾸역..ㅠㅠㅎㅎ