void menu() { char img_dog[500], img_chr[500]; int dog, chr; int cordinate = 1000; sndPlaySound("Files//Sound//Scream_04.wav", SND_FILENAME | SND_ASYNC); delay(1500); sndPlaySound("Files//Sound//07 Dog barking For ajaira intro.wav", SND_FILENAME | SND_ASYNC | SND_LOOP); for(dog = 1, chr = 1; cordinate > -350; dog++, chr++) { sprintf(img_chr, "Files//Images//Final R-L//Untitled-%d.jpg", chr); readimagefile(img_chr, cordinate - 300, 100, cordinate, 500); if(chr == 14) { chr %= 14; }; delay(20); sprintf(img_dog, "Files//Images//Cropped Dog R-L//%d.jpg", dog); dog %= 9; readimagefile(img_dog, cordinate + 100, 320, cordinate + 300, 520); //delay(30); cordinate -= 5; } return; }
bool PlayResource(const TCHAR *resource_name) { #ifdef ANDROID if (_tcsstr(resource_name, _T(".wav"))) return SoundUtil::PlayExternal(Java::GetEnv(), context->Get(), resource_name); return SoundUtil::Play(Java::GetEnv(), context->Get(), resource_name); #elif defined(_WIN32) if (_tcsstr(resource_name, TEXT(".wav"))) return sndPlaySound(resource_name, SND_ASYNC | SND_NODEFAULT); ResourceLoader::Data data = ResourceLoader::Load(resource_name, _T("WAVE")); return !data.IsNull() && sndPlaySound((LPCTSTR)data.data, SND_MEMORY | SND_ASYNC | SND_NODEFAULT); #elif defined(HAVE_PCM_PLAYER) if (nullptr == pcm_resource_player) return false; return pcm_resource_player->PlayResource(resource_name); #else return false; #endif }
void CDPConsole::OnOverview( CAr & ar ) { CTime tm = CTime::GetCurrentTime(); printf( "\n%s", tm.Format( "%Y/%m/%d %H:%M:%S" ) ); printf( "\n--------------------------------------------------------------------------------" ); *sOverview = '\0'; ar.ReadString( sOverview ); #ifdef __QLORD HideAddr( sOverview ); #endif // __QLORD printf( "%s", sOverview ); printf( "--------------------------------------------------------------------------------" ); #ifdef __QLORD printf( "\nCommand: q>" ); #else // __QLORD printf( "\nCommand: r, s, q>" ); #endif // __QLORD if( strstr( sOverview, "x" ) != NULL ) sndPlaySound( "type.wav", SND_ASYNC | SND_LOOP ); else sndPlaySound( NULL, SND_ASYNC ); SetEvent( hPrompt ); }
void CWaveOpen::OnBtnPlay() { sndPlaySound( NULL, NULL ); CString str = GetPathName(); if( str.GetLength() > 0 ) { sndPlaySound( str, SND_FILENAME | SND_ASYNC ); } }
int WINAPI WinMain( HINSTANCE instance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { MSG msg; int done=0; WININFO *info = &wininfo; info->hInstance = GetModuleHandle( 0 ); //if( MessageBox( 0, "fullscreen?", info->wndclass, MB_YESNO|MB_ICONQUESTION)==IDYES ) info->full++; if( !window_init(info) ) { window_end( info ); MessageBox( 0, "window_init()!","error",MB_OK|MB_ICONEXCLAMATION ); return( 0 ); } intro_init(); #ifdef USEDSOUND mzk_init( myMuzik+22 ); memcpy( myMuzik, wavHeader, 44 ); if( !sndPlaySound( (const char*)&myMuzik, SND_ASYNC|SND_MEMORY ) ) { window_end( info ); MessageBox( 0, "mzk???", "error", MB_OK|MB_ICONEXCLAMATION ); return( 0 ); } #endif long to=timeGetTime(); while( !done ) { long t = timeGetTime() - to; while( PeekMessage(&msg,0,0,0,PM_REMOVE) ) { if( msg.message==WM_QUIT ) done=1; TranslateMessage( &msg ); DispatchMessage( &msg ); } intro_do( t ); if( t>(MZK_DURATION*1000) ) { done = 1; } SwapBuffers( info->hDC ); } sndPlaySound( 0, 0 ); window_end( info ); return( 0 ); }
void entrypoint( void ) { // full screen #ifdef SETRESOLUTION if( ChangeDisplaySettings(&screenSettings,CDS_FULLSCREEN)!=DISP_CHANGE_SUCCESSFUL) return; ShowCursor( 0 ); #endif // create window HWND hWnd = CreateWindow( "static",0,WS_POPUP|WS_VISIBLE|WS_MAXIMIZE,0,0,0,0,0,0,0,0); HDC hDC = GetDC(hWnd); // initalize opengl if( !SetPixelFormat(hDC,ChoosePixelFormat(hDC,&pfd),&pfd) ) return; HGLRC hRC = wglCreateContext(hDC); wglMakeCurrent(hDC,hRC); // init intro intro_init(); #ifdef USEDSOUND // calculate music mzk_init( myMuzik+22 ); // and play it memcpy( myMuzik, wavHeader, 44 ); sndPlaySound( (const char*)&myMuzik, SND_ASYNC|SND_MEMORY ); #endif long t; long to = timeGetTime(); do { //ShowCursor(false); t = timeGetTime(); //if( !to ) to=t; t = t-to;//-150; intro_do( t ); //SwapBuffers ( hDC ); wglSwapLayerBuffers( hDC, WGL_SWAP_MAIN_PLANE ); }while ( !GetAsyncKeyState(VK_ESCAPE) && t<(MZK_DURATION*1000) ); sndPlaySound(0,0); intro_end(); ExitProcess(0); }
/** playSoundFile() * */ RexxRoutine3(RexxObjectPtr, play_rtn, OPTIONAL_CSTRING, fileName, OPTIONAL_CSTRING, modifier, NAME, routineName) { bool isStopRoutine = strcmp("STOPSOUNDFILE", routineName) == 0; if ( (! isStopRoutine && argumentOmitted(1)) || isStopRoutine ) { return (sndPlaySound(NULL, SND_SYNC | SND_NODEFAULT) ? TheZeroObj : TheOneObj); } char *fullFileName = searchSoundPath(fileName, context); if ( fullFileName == NULL ) { return TheOneObj; } uint32_t opts = SND_NODEFAULT; if ( strcmp("PLAYSOUNDFILE", routineName) == 0 ) { opts |= isYes(modifier) ? SND_ASYNC : SND_SYNC; } else if ( strcmp("PLAYSOUNDFILEINLOOP", routineName) == 0 ) { opts |= SND_ASYNC | SND_LOOP; } else { // Must be Play() if ( argumentExists(2) ) { if ( stricmp("LOOP", modifier) == 0 ) { opts |= SND_ASYNC | SND_LOOP; } else { opts |= isYes(modifier) ? SND_ASYNC : SND_SYNC; } } else { opts |= SND_SYNC; } } RexxObjectPtr result = sndPlaySound(fullFileName, opts) ? TheZeroObj : TheOneObj; free(fullFileName); return result; }
// ɾ³ý void CExplorerDlg::OnBnClickedButton1() { int tabIndex = m_tab.GetCurSel(); POSITION pos = m_pages[tabIndex]->m_list.GetFirstSelectedItemPosition(); if (pos == NULL) return; int index = m_pages[tabIndex]->m_list.GetNextSelectedItem(pos); CString code; if (tabIndex == 0) // Ö÷Ìâ { ThreadInfo& thread = m_exploreThreadPage.m_threads[index]; code = DeleteThread(thread.tid); if (code == _T("0")) g_deletedTID.insert(_ttoi64(thread.tid)); } else if (tabIndex == 1) // Ìû×Ó code = DeletePost(m_explorePostPage.m_tid, m_explorePostPage.m_posts[index].pid); else // Â¥ÖÐÂ¥ code = DeleteLZL(m_explorePostPage.m_tid, m_exploreLzlPage.m_lzls[index].pid); if (code != _T("0")) AfxMessageBox(_T("ɾ³ýʧ°Ü£¬´íÎó´úÂë" + code + _T("(") + GetTiebaErrorText(code) + _T(")")), MB_ICONERROR); else sndPlaySound(_T("ɾÌù.wav"), SND_ASYNC | SND_NODEFAULT); }
//////////////////////////////////// //void RectChange2() //方块变形函数,根据当前的方块变换出顺时针旋转后的方块 void CRussiaRectView::RectChange2() { if(!m_isBottom2) { //1. 清除原来的位图映像 ShapeInMap2(m_iCurrentShape2,0); //2. 暂存变形后的索引号 int m_itempNextShape2 = shape[m_iCurrentShape2].next; //3. 若变形后,判断是否有冲突 for(int i=0 ; i<4 ; i++) { //3.1 变形后有方块的区域被占有 if(gamestatusmap2[position2.x+shape[m_itempNextShape2].Y[i]][position2.y+shape[m_itempNextShape2].X[i]].status != 0) { ShapeInMap2(m_iCurrentShape2,1); //恢复暂时清除地图中的形状 return; //返回 } //3.2 变形后越界(左右下) if(position2.y+shape[m_itempNextShape2].X[i] < 0 || position2.y+shape[m_itempNextShape2].X[i] > 9 || position2.x+shape[m_itempNextShape2].Y[i] > 15) { //恢复暂时清除地图中的形状 ShapeInMap2(m_iCurrentShape2,1); //返回 return ; } } //4. 若变形后,没有冲突,将当前形状变形为下一个形状 m_iCurrentShape2 = shape[m_iCurrentShape2].next; //5. 更新变形后的位图映像 ShapeInMap2(m_iCurrentShape2,1); //6. 显示变形后的位图 InvalidateCurrent2(); sndPlaySound(".\\bianxin.wav",SND_ASYNC); } }
void CSonnerieDlg::OnTesterButton() { UpdateData(TRUE); switch (m_nBellType) { case 0: sndPlaySound(IDW_ALARM_WESTMINSTER, SND_FILENAME | SND_ASYNC); break; case 1: sndPlaySound(IDW_ALARM_CUCKOO, SND_FILENAME | SND_ASYNC); break; case 2: sndPlaySound(IDW_ALARM_COQ, SND_FILENAME | SND_ASYNC); break; } }
XCSEXAMPLEPLUGIN_API void DemoSound(TCHAR *misc) { sndPlaySound(misc, SND_ASYNC | SND_FILENAME); DLLFUNC lpfnDLLProc = (DLLFUNC)GetProcAddress(hinst, TEXT("DoStatusMessage")); if (lpfnDLLProc) lpfnDLLProc(TEXT("Testing from DLL"), TEXT("")); }
/* key 값에 따라 노래가 흘러나온다. 노래 재생은 sndPlaySound 함수로 흘러나오게 설정하였다. 각 key 값의 뜻은 각 장면을 뜻한다. 별도의 음악파일이 필요하며 경로설정은 sndPlaySound(TEXT("음악파일경로") 를 입력하면 된다. */ void MyDisplay(){ if (key == RUN){//로봇이 달릴때 Run(); glPopMatrix(); } else if (key == JAP){//로봇이 잽을 날릴 때 Jap(); glPopMatrix(); } else if (key == ROCKET){//로봇이 로켓을 발사할때 Rocket(); glPopMatrix(); } else if (key == YUNA){//로봇이 김연아 선수의 모션을 취할 때 Show(); glPopMatrix(); } else if (key == 5){//중지가 선택됐을 때 sndPlaySound(NULL, SND_ASYNC); } else if (key == EXIT){//종료가 선택됐을 때 ex(); glPopMatrix(); } }
LRESULT CTodayView::OnPlaySound(WPARAM wp, LPARAM lp) { LPTSTR lpTarget; DWORD dwCount; LPSTR lpImageFile = (LPSTR) lp; if ( lp ) { lpTarget = (LPTSTR)HeapAlloc(hHeap, HEAP_NO_SERIALIZE|HEAP_ZERO_MEMORY, (strlen(lpImageFile) + lstrlen(pCurrentDirectory) + 1) * sizeof(TCHAR)+128); if ( lpTarget ) { { LPSTR lpTemp = strchr(lpImageFile, ':'); // skip 'file' keyword if ( lpTemp ) lpImageFile = lpTemp + 1; // skip } wsprintf(lpTarget, TEXT("%S"), lpImageFile); for ( dwCount = 0 ; dwCount < wp; dwCount++) sndPlaySound(lpTarget, SND_FILENAME|SND_ASYNC); HeapFree(hHeap, HEAP_NO_SERIALIZE, lpTarget); } HeapFree(hHeap, HEAP_NO_SERIALIZE, (LPVOID)lp); } return 0; }
void CDPMonitor::OnAddConnection( CAr & ar, DPID dpid ) { DWORD dwId; BOOL fsndPing; ar >> dwId >> fsndPing; HTREEITEM hItem = m_pMonitorDlg->m_tree.FindItem( m_pMonitorDlg->m_tree.GetRootItem(), dwId, true ); if( hItem != NULL ) { PSrvrData pData = (PSrvrData)m_pMonitorDlg->m_tree.GetItemData( hItem ); pData->dpid = dpid; pData->dwPing = timeGetTime(); pData->fsndPing = fsndPing; pData->tm = CTime::GetCurrentTime(); m_pMonitorDlg->m_tree.SetCheck( hItem, FALSE ); sndPlaySound( NULL, SND_ASYNC ); CString sItem = m_pMonitorDlg->m_tree.GetItemText( hItem ); if( sItem.Find( ".", 0 ) == -1 ) { char lpAddr[16] = { 0, }; GetPlayerAddr( dpid, lpAddr ); sItem += " "; sItem += lpAddr; m_pMonitorDlg->m_tree.SetItemText( hItem, (LPCSTR)sItem ); } m_pMonitorDlg->m_pDPConsoleSrvr->SendOverview( DPID_ALLPLAYERS ); } }
// Play a sound from filesystem void LKSound(const TCHAR *lpName) { #ifdef DISABLEAUDIO return false; #else static bool doinit=true; static bool working=false; static TCHAR sDir[MAX_PATH]; if (doinit) { TCHAR srcfile[MAX_PATH]; LocalPath(sDir,TEXT(LKD_SOUNDS)); _stprintf(srcfile,TEXT("%s\\_SOUNDS"),sDir); if ( GetFileAttributes(srcfile) == 0xffffffff ) { FailStore(_T("ERROR NO SOUNDS DIRECTORY CHECKFILE <%s>%s"),srcfile,NEWLINE); StartupStore(_T("------ LK8000 SOUNDS NOT WORKING!%s"),NEWLINE); } else working=true; doinit=false; } if (!working) return; TCHAR sndfile[MAX_PATH]; _stprintf(sndfile,_T("%s\\%s"),sDir,lpName); sndPlaySound (sndfile, SND_ASYNC| SND_NODEFAULT ); return; #endif }
/* 로봇이 퇴장할때 크기 변환을 표현한 함수 */ void ex() { sndPlaySound(TEXT("C:\\sample5.wav"), SND_ASYNC | SND_NOSTOP); glLoadIdentity(); //CTM 초기화 /* 로봇의 기본적인 관절의 움직임 범위를 제한하는 곳 */ L_Arm_x = (-40) + sin(time2) * 60;//왼쪽 어깨의 각도시작은 -40상태에서 sin()함수를 사용하여 주기적인 움직임 설정 R_Arm_x = (-80) - L_Arm_x; //우측 어깨의 각도시작은 -80상태에서 왼쪽어깨 움직임의 반대로 설정 R_Arm_y = -abs(cos(time2) * 10); //우측팔뚝 각도조절(팔을 뻗는 움직임표현을위하여 어깨의 sin()함수와 반대인 cos()함수 사용) L_Arm_y = -abs(-cos(time2) * 10); //좌측팔뚝 각도조절(팔을 뻗는 움직임표현을위하여 어깨의 sin()함수와 반대인 cos()함수 사용) R_Leg_y = abs(-sin(time) * 30 - 30); //우측종아리 각도조절(abs절대값을 줌으로써 종아리가 앞으로 꺾이지 않는 한계점을 설정) L_Leg_y = abs(sin(time) * 30 - 30); //좌측종아리 각도조절(abs절대값을 줌으로써 종아리가 앞으로 꺾이지 않는 한계점을 설정) R_Leg_x = sin(time) * 60; //우측다리는 60도 각도까지 움직이되 sin()함수를 사용하여 주기적인 움직임 설정 L_Leg_x = -R_Leg_x; //좌측다리는 우측다리반대로 60도 각도까지 움직이되 sin()함수를 사용하여 주기적인 움직임 설정 ////////////////display//////////////// cyl = gluNewQuadric(); //실린더 객체 생성 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); //초기화 glMatrixMode(GL_MODELVIEW); //모드 설정 glLoadIdentity(); //CTM 초기화 glRotatef(-180, 0, 1, 0); //y축 기준으로 회전 glRotatef(time6, 0, 0, 1); //time6 변수만큼 z축기준으로 회전 glScalef(0.4 / (sin(time3)), 0.4 / (sin(time3)), 0.4 / (sin(time3))); //0.4의 크기에서 sin()를 통한 크기조절을 주기적으로 가함에따라 glPushMatrix();// 처음 저장 좌표 다시 저장 //멀어지고 가까워지는듯한 느낌을 표현 glTranslatef(0.0, 0.5, 0.0);//최초 위치 DrawAndroid(); glutSwapBuffers(); }
void __fastcall TTelnetCfgDlg::AnswerSoundButtonClick(TObject *Sender) { OpenDialog->FileName=AnswerSoundEdit->Text; if(OpenDialog->Execute()==true) { AnswerSoundEdit->Text=OpenDialog->FileName; sndPlaySound(OpenDialog->FileName.c_str(),SND_ASYNC); } }
//--------------------------------------------------------------------------- void __fastcall TFtpCfgDlg::HackAttemptSoundButtonClick(TObject *Sender) { OpenDialog->FileName=HackAttemptSoundEdit->Text; if(OpenDialog->Execute()==true) { HackAttemptSoundEdit->Text=OpenDialog->FileName; sndPlaySound(OpenDialog->FileName.c_str(),SND_ASYNC); } }
void __fastcall TMailCfgDlg::OutboundSoundButtonClick(TObject *Sender) { OpenDialog->FileName=OutboundSoundEdit->Text; if(OpenDialog->Execute()==true) { OutboundSoundEdit->Text=OpenDialog->FileName; sndPlaySound(OpenDialog->FileName.c_str(),SND_ASYNC); } }
////////////////////////////// //int GetDecreaseRow() //得到当前的分数,返回消去的行数 int CRussiaRectView::GetDecreaseRow() { int DecreaseRow = 0 ; //1. 判断是否已得分 for (int i=0;i<m_iRow;i++) { //1.1 假设第 i 行满 m_bIsFull = true; //1.2 对第 i 行进行检查 for (int j=0;j<m_iCol;j++) //1.3 若该行有一个为空的 if (gamestatusmap[i][j].status == 0) { //1.3.1 则该行满为假 m_bIsFull = false; //1.3.2 立即退出本次循环 break; } //1.4 若该行是满的 if(m_bIsFull == true) { //1.4.1 销去第 i 行 for (int k=i;k>0;k--) for (j=0;j<m_iCol;j++) { //即将从该行起到最上面的一行,每行的状态改为其上面一行的状态 gamestatusmap[k][j].status = gamestatusmap[k-1][j].status; gamestatusmap[k][j].color = gamestatusmap[k-1][j].color; } //1.4.2 最上面一行置空 for (j=0;j<m_iCol;j++) gamestatusmap[0][j].status = 0; //1.4.3 减少的行数加 1 DecreaseRow++; } } //2. 若销去行数大于 0 if(DecreaseRow > 0) { //2.1 统计分数 m_iScore += (DecreaseRow + 1) * DecreaseRow * 100 / 2; //2.2 根据分数更改等级 if(m_iScore >= (m_iLevel+1)* m_iLevel* 100 * 3) { m_iLevel++; SetTimer(1,1600-250*m_iLevel,NULL); } sndPlaySound(".\\xiaoqu.wav",SND_ASYNC); //销行的声音 //2.3 更新视图 InvalidateCurrent(); //2.4 返回销去的行数 return DecreaseRow ; } //3. 否则没有销去方块 return 0 ; }
void Sound::Sound::play (int loopmode) { if(!EnableSound) return; Calc (); if (midi) play_midi (midi, loopmode != 0); else sndPlaySound (fn, _volume, _balance); SetSpeaker (); }
bool PlayResource (const TCHAR* lpName) { #ifdef DISABLEAUDIO return false; #else BOOL bRtn; LPTSTR lpRes; HANDLE hResInfo, hRes; // TODO code: Modify to allow use of WAV Files and/or Embedded files if (_tcsstr(lpName, TEXT(".wav"))) { bRtn = sndPlaySound (lpName, SND_ASYNC | SND_NODEFAULT ); } else { // Find the wave resource. hResInfo = FindResource (XCSoarInterface::hInst, lpName, TEXT("WAVE")); if (hResInfo == NULL) return false; // Load the wave resource. hRes = LoadResource (XCSoarInterface::hInst, (HRSRC)hResInfo); if (hRes == NULL) return false; // Lock the wave resource and play it. lpRes = (LPTSTR)LockResource ((HGLOBAL)hRes); if (lpRes != NULL) { bRtn = sndPlaySound (lpRes, SND_MEMORY | SND_ASYNC | SND_NODEFAULT ); } else bRtn = 0; } return bRtn; #endif }
int scene_Fainted(int index) { int i, np; fighters_Cry(index, 40); if(index == 1) { for(i = 0; i < 60; i++) { DoVBlank(); np = (i*2) + fighters[index].spriteVOffset + 8; OamBak[1].VPos = np; if(np > 24) DmaClear(0, MEM_VRAM_OBJ + 0xF00, 0x100); if(np > 28) DmaClear(0, MEM_VRAM_OBJ + 0xE00, 0x100); if(np > 32) DmaClear(0, MEM_VRAM_OBJ + 0xD00, 0x100); if(np > 40) DmaClear(0, MEM_VRAM_OBJ + 0xC00, 0x100); if(np > 48) DmaClear(0, MEM_VRAM_OBJ + 0xB00, 0x100); if(np > 56) DmaClear(0, MEM_VRAM_OBJ + 0xA00, 0x100); if(np > 64) DmaClear(0, MEM_VRAM_OBJ + 0x900, 0x100); if(np > 72) DmaClear(0, MEM_VRAM_OBJ + 0x800, 0x100); OamBak[4].HPos = 36 - (i * 4); OamBak[5].HPos = 68 - (i * 4); OamBak[10].HPos = 12 - (i * 4); OamBak[11].HPos = 76 - (i * 4); } } if(battle_AllFainted(HisParty)) { if(ThisBattle.trainer) { //sndPlaySound((ThisBattle.gymleader ? 8 : 10),SOUND_NORESTART); sndPlaySound(8,SOUND_NORESTART); } else { sndPlaySound(9,SOUND_NORESTART); } } return false; }
void entrypoint( void ) { // full screen if( ChangeDisplaySettings(&screenSettings,CDS_FULLSCREEN)!=DISP_CHANGE_SUCCESSFUL) return; ShowCursor( 0 ); // create window HWND hWnd = CreateWindow( "static",0,WS_POPUP|WS_VISIBLE|WS_MAXIMIZE,0,0,0,0,0,0,0,0); if( !hWnd ) return; HDC hDC = GetDC(hWnd); // initalize opengl if( !SetPixelFormat(hDC,ChoosePixelFormat(hDC,&pfd),&pfd) ) return; wglMakeCurrent(hDC,wglCreateContext(hDC)); // init intro if( !intro_init() ) return; // init mzk mzk_init( myMuzik+22 ); memcpy( myMuzik, wavHeader, 44 ); // play mzk sndPlaySound( (const char*)&myMuzik, SND_ASYNC|SND_MEMORY ); // play intro long t; long to = timeGetTime(); do { t = timeGetTime() - to; intro_do( t ); wglSwapLayerBuffers( hDC, WGL_SWAP_MAIN_PLANE ); //SwapBuffers( hDC ); }while ( !GetAsyncKeyState(VK_ESCAPE) && t<(MZK_DURATION*1000) ); #ifdef CLEANDESTROY sndPlaySound(0,0); ChangeDisplaySettings( 0, 0 ); ShowCursor(1); #endif ExitProcess(0); }
//////////////////////////////// //void GameOver() //游戏失败结束 void CRussiaRectView::GameOver() { KillTimer(1); if(!m_bOnePlayer)KillTimer(2); sndPlaySound(".\\fail.wav",SND_ASYNC); if(MessageBox("游戏结束!!!") == 1) { OnGameEnd() ; } }
bool PlayResource(const TCHAR *resource_name) { #ifdef ANDROID return SoundUtil::Play(Java::GetEnv(), context->Get(), resource_name); #elif defined(WIN32) && !defined(GNAV) if (_tcsstr(resource_name, TEXT(".wav"))) return sndPlaySound(resource_name, SND_ASYNC | SND_NODEFAULT); ResourceLoader::Data data = ResourceLoader::Load(resource_name, _T("WAVE")); return !data.IsNull() && sndPlaySound((LPCTSTR)data.data, SND_MEMORY | SND_ASYNC | SND_NODEFAULT); #else return false; #endif }
void CSettingDlg::OnIfsuccess() { // TODO: Add your control notification handler code here CString strSoundFile = GetOpenSoundFile(); if(IsFileExist(strSoundFile)) { m_set = strSoundFile; UpdateData(FALSE); } ((CGh0stApp *)AfxGetApp())->m_IniFile.SetString(_T("设置"), _T("Set"), m_set); sndPlaySound(m_set,SND_ASYNC); }
////////////////////////////////////////// //void RectArrow(int m_Type) //根据键盘输入控制方块的动作 void CRussiaRectView::RectArrow(int m_Type) { switch(m_Type) { case LEFT: if(!IsLeftLimit() && !m_isBottom) //若左边没有限制 且没有到达底部 { ShapeInMap(m_iCurrentShape,0); //将原形状清除 //InvalidateCurrent(); position.y--; //左移一个单位 ShapeInMap(m_iCurrentShape,1); //显示左移后的形状 InvalidateCurrent(); sndPlaySound(".\\yidong.wav",SND_ASYNC); } break; case RIGHT: if(!IsRightLimit() && !m_isBottom) //若左边没有限制 且没有到达底部 { ShapeInMap(m_iCurrentShape,0); //将原形状清除 //InvalidateCurrent(); position.y++; //左移一个单位 ShapeInMap(m_iCurrentShape,1); //显示左移后的形状 InvalidateCurrent(); sndPlaySound(".\\yidong.wav",SND_ASYNC); } break; case DOWN: RectDown(); break; } }
/* 로봇이 로켓을 날리는 모습을 표현한 함수 */ void Rocket(){ sndPlaySound(TEXT("C:\\sample2.wav"), SND_ASYNC | SND_NOSTOP); glLoadIdentity(); //CTM 초기화 /*90도 각도로 팔을 앞으로 내민다*/ L_Arm_x = -90; R_Arm_x = -90; R = 2 * abs(-sin(time2)*0.2 - 0.2) + 0.2;//우측 로켓 움직임 설정 //abs절대값으로 로켓이 앞쪽으로 나가게 설정. //+0.2를 통해 로켓의 처음위치 조절. 2*를 통해 로켓이 나가는 거리조절. //sin()함수를 통해 주기적인 움직임 설정. R2 = 2 * abs(sin(time2)*0.2 - 0.2) + 0.2;//좌측 로켓 움직임 설정 //abs절대값으로 로켓이 앞쪽으로 나가게 설정. //+0.2를 통해 로켓의 처음위치 조절. 2*를 통해 로켓이 나가는 거리조절. //sin()함수를 통해 주기적인 움직임 설정. R_Leg_y = abs(-sin(time) * 30 - 30); //우측종아리 각도조절(abs절대값을 줌으로써 종아리가 앞으로 꺾이지 않는 한계점을 설정) L_Leg_y = abs(sin(time) * 30 - 30); //좌측종아리 각도조절(abs절대값을 줌으로써 종아리가 앞으로 꺾이지 않는 한계점을 설정) R_Leg_x = sin(time) * 60; //우측다리는 60도 각도까지 움직이되 sin()함수를 사용하여 주기적인 움직임 설정 L_Leg_x = -R_Leg_x; //좌측다리는 우측다리반대로 60도 각도까지 움직이되 sin()함수를 사용하여 주기적인 움직임 설정 ////////////////display//////////////// cyl = gluNewQuadric(); //실린더 객체 생성 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); //초기화 glMatrixMode(GL_MODELVIEW); //모드 설정 DrawGround(); //지면 호출 glLoadIdentity(); //CTM 초기화 glPushMatrix();// 처음 저장 좌표 다시 저장 glRotatef(-230.0, 0, 1, 0); //y축 기준으로 회전 /* 로봇이 로켓을 쏠 때 상,하,좌,우로 몸을 트는 모습을 설정 */ glRotatef(-abs(sin(time) * 8), 1, 0, 0); //x축으로 8도 까지 각도틀어짐(abs절대값을 줌으로써 몸체가 뒤로 꺾이지 않는 한계점을 설정) glRotatef(sin(time) * 7, 0, 0, 1); //z축으로 7도 까지 각도틀어짐, sin()함수를 사용하여 주기적인 움직임 설정 /* 로봇이 로켓을 날리며 몸을 튕기는 모습을 표현 */ float i = 0; i = abs(sin(time)*0.08); //i값 설정 glTranslatef(0.0, i, 0); //변수 i만큼 이동 glTranslatef(0.0, 0.5, 0.0);//최초 위치 DrawAndroid(); glutSwapBuffers(); }
bool CRussiaRectView::IsBottom2() { //1.若到游戏区底部,则停止移动,置到底的标志为true,并返回 if(position2.x >= m_iRow-1) { //MessageBox("1"); m_isBottom2 = true; position2.x = m_iRow-1; sndPlaySound(".\\zhuangdi.WAV",SND_ASYNC); return m_isBottom2; } //2.否则没有到达游戏区底部,则进行下降碰撞分析 //2.1 清除原形状在地图中的映像 ShapeInMap2(m_iCurrentShape2,0); //2.2 判断形状下移一个位置后,是否有方块和所处的位置已被占有 for(int ii=0 ; ii < 4 ; ii++) { //2.3 如果有任何一个被占有,则说明下方有方块阻挡 if(gamestatusmap2[position2.x+1+shape[m_iCurrentShape2].Y[ii]][position2.y+shape[m_iCurrentShape2].X[ii]].status == 1) { //2.4 置到底的标志为true m_isBottom2 = true; //2.5 修改恢复原形状在地图中的映像 ShapeInMap2(m_iCurrentShape2,1); //2.6 发出碰撞的音效 sndPlaySound(".\\zhuangdi.WAV",SND_ASYNC); //2.7 返回已到底部的标志 return m_isBottom2; } } //3. 没以上情况,则方块没有到达底部,置到底标志为false m_isBottom2 = false; //4. 恢复方块在地图中的位置 ShapeInMap2(m_iCurrentShape2,1); //5. 返回到达底部的标志 return m_isBottom2; }