메뉴 건너뛰기

창작에 관련된 질문이나 간단한 팁, 예제를 올리는 곳

 MIDI 음악을 메인 루프 앞에서 재생시킨 후
 다른 음악을 재생시키려고 했더니 그 다음부턴 음악이 정지만 하고 재생이 되지를 않네요.
예전에 배고파요 만들었을 때는 비슷하게 해도 별 문제가 없었던 것 같은데, 왜 이러는지 잘 모르겠습니다.

void bgm(int flag)
{
 _MidiStop();
 if(flag == 0){
  _MidiPlay("title.mid", true);
 }else if(flag == 1){
  _MidiPlay("goor.mid", false);
 }
}

int main(char* arg[])
{
 //창 생성
 if(!MainInitialize("미시세계의 아름다움", TRUE, FALSE, false))return 0;

 //윈도우창 이동
 if(window_mode)
 {
  jdd->OnMove(100, 100);
  SetCursor(LoadCursor(0, IDC_ARROW));
 }
 JPictureInfo jpi;
 jpi.SetColorKey(JColor(0,0,255));

 jdd->LoadPicture("title", "title.bmp", &jpi, true);
 jdd->LoadPicture("bg", "bg.bmp", &jpi, true);

 int state = 0;
 bgm(state);
 //메인 실행
 while(!GetKey(vkey_esc))
 {
  if(!ProcessMessage())break;
  if(state == 0){
   jdd->DrawPicture(backbuffer, "title", 0, 0, NULL);
   if(GetKey(vkey_enter)){
    state++;
   }
  }else if(state == 1){
   bgm(state);
   state++;
  }else if(state == 2){
   jdd->DrawPicture(backbuffer, "bg", 0, 0, NULL);
  }
  jdd->Render();
 }


조회 수 :
2490
등록일 :
2008.05.16
08:54:29 (*.234.216.51)
엮인글 :
게시글 주소 :
https://hondoom.com/zbxe/index.php?mid=study&document_srl=199521

똥똥배

2008.05.16
18:08:31
(*.239.144.2)
Midi 관련 명령은 Mci에 메시지를 보내서 음악을 재생하거나 정지하는 방식이라서
MidiStop이든 MidiPlay든 그 순간 명령이 먹히는 것이 아니라
명령이 들어간 후 다음 번의 ProcessMessage() 에서 명령이 처리됩니다.
즉, MidiStop() 뒤에 if(ProcessMessage())return; 을 넣어주시거나
state==1 에서 스톱 시키고 state==2에서 재생하고, 현재 state==2는 state==3으로 바꾸시는 방법이 있습니다.

대슬

2008.05.16
20:19:05
(*.132.163.161)

그렇군요. 감사합니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수sort
145 cocos2d-x 2.2.2 문자열 출력 버그 [2] 똥똥배 2014-06-10 601
144 QT 프로젝트 배포에 필요한 거 똥똥배 2013-07-11 602
143 cocos2d-x 2.2.2 윈도우 환경 기본 메모리 누수 똥똥배 2014-03-10 640
142 cocos2d-x Clipping Layer 수정 똥똥배 2013-09-10 670
141 Lua 소코반: 상자를 만들고 옮기고 상자와 상자가 겹치거나 상자와 벽이 겹치지 않게 해 보자! 노루발 2013-09-17 677
140 CCTextFieldTTF 0바이트 메모리 누수 버그 해결법 똥똥배 2014-01-13 692
139 Lua 소코반: 벽을 뚫고 나가지 않게 해보자! 노루발 2013-09-17 696
138 Love2D를 사용하기 위한 Lua 강좌: 입출력과 기본 노루발 2013-09-17 706
137 흥크립트 원인불명 버그... [3] file 네모상자 2008-02-16 738
136 Lua 소코반: 목표 지점을 만들고, 상자가 모두 옮겨지면 게임을 끝내자! 노루발 2013-09-17 754
135 Lua 소코반: 플레이어를 그리고 움직이게 해보자 노루발 2013-09-17 758
134 게임의 기본 설정을 담당하는 love.conf 노루발 2013-09-17 763
133 Cocostudio의 ActionNode 메모리 누수 해결법(cocos2d-x 2.2.2) [2] 똥똥배 2014-03-09 776
132 cocos2d-x 2.2.2 UILabelBMFont 메모리 누수 해결법 [2] 똥똥배 2014-03-10 783
131 이미지 그리는 방법 1편 노루발 2013-09-17 812
130 이미지 그리는 방법: 2편. 부제: 쿼드! 노루발 2013-09-17 821
129 Lua 소코반 EX: 포팅: 2 (키가 눌리면 이동하게 해 보자) 노루발 2013-09-18 832
128 Lua 소코반: 맵을 뿌리자. 노루발 2013-09-17 833
127 Lua 소코반 EX: 포팅: 1 노루발 2013-09-18 856
126 Lua 소코반 EX: 포팅: 3 (머나먼 여행길 안녕 친구여) 노루발 2013-09-18 913