青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

劍孤寒的小站

人生的價(jià)值不是用時(shí)間,而是用深度去衡量的!
posts - 75, comments - 290, trackbacks - 0, articles - 0

    在一個(gè)優(yōu)秀的游戲中,音樂(lè)和音效往往能起到畫(huà)龍點(diǎn)睛的作用,這一節(jié)我們就來(lái)學(xué)習(xí)如何在GGE中播放音樂(lè)和音效。
    GGE自帶了音頻解碼播放功能,不需要使用base或fmod等音效庫(kù)。在GGE中提供了一個(gè)Sound_Load()函數(shù)用于載入音樂(lè)和音效,支持wav和ogg格式的音頻文件,如果載入成功則返回一個(gè)ggeSound指針,例如:

   m_sound = Sound_Load("Fire1.ogg"); //載入音效
    m_music = Sound_Load("eyes on me.ogg"true); //載入音樂(lè)

    要載入音效只需簡(jiǎn)單的調(diào)用Sound_Load()函數(shù),并傳入音效文件名即可,如果是載入音樂(lè)的話,一般需要將音樂(lè)轉(zhuǎn)換成ogg格式,并且將Sound_Load()函數(shù)的第二個(gè)參數(shù)傳入true,表示以流方式載入。需要注意的是,以流方式載入的ogg文件比較節(jié)省內(nèi)存(wav格式無(wú)效),但無(wú)法同一時(shí)間播放多次,例如碰到同時(shí)響起兩聲槍響這種情況,如果以流方式載入,調(diào)用兩次播放函數(shù)實(shí)際上只能聽(tīng)到一聲槍響,所以音效一般不使用流方式載入。
    音樂(lè)和音效載入后都可以調(diào)用ggeSound::Play()函數(shù)來(lái)播放,播放時(shí)可以動(dòng)態(tài)修改音量、頻率、聲道平衡,也可以暫停和恢復(fù)播放。例如在OnUpdate(float dt)函數(shù)中添加如下代碼對(duì)音樂(lè)和音效進(jìn)行控制:

 switch (Input_GetKey())
        
{
        
case 'Q':
            m_music
->Play(true); //音樂(lè)循環(huán)播放
            break;

        
case 'W':
            m_music
->Stop();
            
break;

        
case 'A':
            m_music
->Pause();
            
break;

        
case 'S':
            m_music
->Resume();
            
break;

        
case 'Z':
            
if (m_musicVolume > 0) m_musicVolume--;
            m_music
->SetVolume(m_musicVolume);
            
break;

        
case 'X':
            
if (m_musicVolume < 100) m_musicVolume++;
            m_music
->SetVolume(m_musicVolume);
            
break;

        
case 'E':
            
if (m_soundVolume > 0) m_soundVolume--;
            m_sound
->SetVolume(m_soundVolume);
            
break;

        
case 'R':
            
if (m_soundVolume < 100) m_soundVolume++;
            m_sound
->SetVolume(m_soundVolume);
            
break;

        
case 'D':
            
if (m_soundPan > -100) m_soundPan--;
            m_sound
->SetPan(m_soundPan);
            
break;

        
case 'F':
            
if (m_soundPan < 100) m_soundPan++;
            m_sound
->SetPan(m_soundPan);
            
break;

        
case 'C':
            m_soundpPitch 
-= dt * 0.5f;
            
if (m_soundpPitch < 0) m_soundpPitch = 0;
            m_sound
->SetPitch(m_soundpPitch);
            
break;

        
case 'V':
            m_soundpPitch 
+= dt  * 0.5f;
            
if (m_soundpPitch > 10.0f) m_soundpPitch = 10.0f;
            m_sound
->SetPitch(m_soundpPitch);
            
break;

        
case VK_SPACE:
            m_sound
->Play();
            
break;
        }

    因?yàn)橐魳?lè)是以流方式載入的,每次按下Q鍵會(huì)讓音樂(lè)重新開(kāi)始播放,音效不是以流方式載入的,所以每次按下空格鍵即使之前的音效沒(méi)播放完也能聽(tīng)到新的聲音。
    在GGE中還提供了一個(gè)ggeMusic模塊,這個(gè)是專(zhuān)門(mén)用來(lái)播放midi音樂(lè)的,不過(guò)這個(gè)現(xiàn)在用得比較少,就不詳細(xì)介紹了,大致使用方法跟ggeSound一樣,如果有需要可以查看文檔。


Feedback

# re: Galaxy2D游戲引擎教程6 - 音樂(lè)和音效[未登錄](méi)  回復(fù)  更多評(píng)論   

2010-04-23 17:01 by 小白
期待博主什么時(shí)候來(lái)個(gè)小型完整的RPG游戲教材就好了,方便下我們這些個(gè)新手

# re: Galaxy2D游戲引擎教程6 - 音樂(lè)和音效  回復(fù)  更多評(píng)論   

2010-04-24 18:07 by 劍孤寒
嗯,如果有時(shí)間的話會(huì)弄一個(gè)綜合性的小游戲來(lái)做教材,真希望一天能有48小時(shí),可以每天有點(diǎn)時(shí)間做自己的東西啊-_-

# re: Galaxy2D游戲引擎教程6 - 音樂(lè)和音效[未登錄](méi)  回復(fù)  更多評(píng)論   

2010-04-25 12:41 by 斷桿破槍頭
3.1
ggeFont 里的print函數(shù)是不是有問(wèn)題啊?

我在代碼里面
初始坐標(biāo)是300,200
移動(dòng)增量是1.5
m_RolePosFon->print(680,30,"角色坐標(biāo): %d,%d",m_RolePos.x,m_RolePos.y);
坐標(biāo)顯示有問(wèn)題 還是我用的有問(wèn)題呢

# re: Galaxy2D游戲引擎教程6 - 音樂(lè)和音效[未登錄](méi)  回復(fù)  更多評(píng)論   

2010-04-25 15:03 by 斷桿破槍頭
截圖的函數(shù)是不是也有問(wèn)題啊

老是默認(rèn)生成一個(gè)這個(gè)文件 snapshot.png

我代碼是這樣的
PATH_GAME_SCRNSHOT 宏定義為"ScrnShot\\"目錄下面

if (Input_IsKeyDown(GGEK_F12))
{
char fnstr[200];
static SYSTEMTIME t;
GetSystemTime(&t);
sprintf(fnstr,"%sSword%d%d%d_%d.jpg",PATH_GAME_SCRNSHOT,
t.wYear,t.wMonth,t.wDay,
GetTickCount());
Graph_Snapshot(fnstr,IMAGE_JPG);
}

# re: Galaxy2D游戲引擎教程6 - 音樂(lè)和音效  回復(fù)  更多評(píng)論   

2010-04-26 09:17 by 劍孤寒
@斷桿破槍頭
1.請(qǐng)確定m_RolePos.x和m_RolePos.y是否是浮點(diǎn)數(shù),如果是,應(yīng)該這樣調(diào)用:m_RolePosFon->print(680,30,"角色坐標(biāo): %f,%f",m_RolePos.x,m_RolePos.y);
2.可能是因?yàn)楦J(rèn)的截圖快捷鍵沖突了,你可以試著換一個(gè)按鍵作為截圖鍵看看是否有效,下個(gè)版本加一個(gè)默認(rèn)截圖按鍵開(kāi)關(guān)好了

# re: Galaxy2D游戲引擎教程6 - 音樂(lè)和音效[未登錄](méi)  回復(fù)  更多評(píng)論   

2010-04-26 16:22 by 斷桿破槍頭
第二個(gè)問(wèn)題解決了,第一個(gè)問(wèn)題加類(lèi)型轉(zhuǎn)換就好了(int)

# re: Galaxy2D游戲引擎教程6 - 音樂(lè)和音效[未登錄](méi)  回復(fù)  更多評(píng)論   

2010-04-26 19:09 by 斷桿破槍頭
大場(chǎng)景卷動(dòng) 怎么做啊 ?
就是你那個(gè)演示里面 地圖的移動(dòng)

# re: Galaxy2D游戲引擎教程6 - 音樂(lè)和音效  回復(fù)  更多評(píng)論   

2010-04-27 11:47 by 劍孤寒
這個(gè)可以用ggeImage來(lái)實(shí)現(xiàn),
先用ggeImage載入地圖:
ggeImage *MapImage = Image_Load("map.jpg");
可以載入任意大小的圖片,
不受顯卡最大紋理尺寸的限制,
(因?yàn)橄瘛盾庌@劍3》等游戲有些地圖尺寸是非常大的,
如果超過(guò)了顯卡的最大紋理尺寸地圖就顯示不出來(lái)了,
用ggeImage就不用擔(dān)心這個(gè)問(wèn)題了)

然后再用下面的代碼把地圖畫(huà)出來(lái):
MapImage->SetRect((int)sceneX, (int)sceneY, (int)sceneX + ScreenWidth, (int)sceneY + ScreenHeight);
MapImage->Render(0, 0);

調(diào)用ggeImage::SetRect()函數(shù)設(shè)置要顯示的地圖區(qū)域,
ScreenWidth和ScreenHeight表示屏幕尺寸,
如果你的屏幕大小為640x480,
則ScreenWidth=640,ScreenHeight = 480,
sceneX和sceneY為地圖顯示區(qū)域左上角坐標(biāo),
假設(shè)主角的實(shí)際坐標(biāo)為(400, 400),
為了讓主角在屏幕中間即主角的坐標(biāo)屏幕坐標(biāo)為(320, 240),
所以要將地圖往左上角移動(dòng),
即sceneX = 400 - 320; sceneY = 400 - 240;
最后調(diào)用ggeImage::Render()將地圖畫(huà)出來(lái)就可以了

# re: Galaxy2D游戲引擎教程6 - 音樂(lè)和音效[未登錄](méi)  回復(fù)  更多評(píng)論   

2015-10-03 13:39 by shepherd
正在寫(xiě)一個(gè)語(yǔ)音播放類(lèi),發(fā)現(xiàn)老是出錯(cuò),就做了個(gè)簡(jiǎn)單的演示程序。
具體問(wèn)題是:加載同一個(gè)聲音資源后,不疊加,一次一次的播放沒(méi)問(wèn)題,但是疊加播放就出錯(cuò)。大神幫忙看一下唄。
#include <stdlib.h>
#include "inc/ggebase.h"
#include "inc/ggesound.h"

using namespace gge;

ggeSound *st;
gUInt changing_color = 0xFFFFFFFF;

//幀函數(shù)
bool Frame()
{
//開(kāi)始渲染
if (Graph_BeginScene())
{
//清屏
Graph_Clear();

if(Input_GetKey() == VK_SPACE)
{
changing_color = 0xFF000000 + (gUInt)(rand() * 0xFFFFFF);
st->PlayEx();
}
Graph_RenderQuad(100.0f, 120.0f, 140.0f, 160.0f, changing_color);

//結(jié)束渲染
Graph_EndScene();
}
return false;
}

int main(HINSTANCE, HINSTANCE, LPSTR, int)
{
//創(chuàng)建游戲引擎
if (!Engine_Create(GGE_VERSION)) return 0;

System_SetState(GGE_TITLE, "Galaxy2D Game Engine - Initiate");
//設(shè)置幀函數(shù)
System_SetState(GGE_FRAMEFUNC, Frame);
//設(shè)置幀率
System_SetState(GGE_FPS, 60);
System_SetState(GGE_USESOUND, true); //是否開(kāi)啟聲音:是


//系統(tǒng)初始化
if (System_Initiate())
{
st = Sound_Load("d://1.wav", false);
//開(kāi)始運(yùn)行幀函數(shù)
System_Start();
}

//關(guān)閉引擎,釋放資源
Engine_Release();
return 0;
}

# re: Galaxy2D游戲引擎教程6 - 音樂(lè)和音效  回復(fù)  更多評(píng)論   

2015-10-04 19:01 by 劍孤寒
@shepherd
已經(jīng)修復(fù)了,請(qǐng)下載最新版引擎,感謝反饋
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美日韩精品久久久| 亚洲国产美女久久久久| 免费短视频成人日韩| 欧美日韩视频一区二区三区| 久久夜色精品亚洲噜噜国产mv| 欧美日韩中文字幕| 欧美大片91| 韩国一区二区三区在线观看| 亚洲社区在线观看| 亚洲色图综合久久| 欧美高清视频一区二区三区在线观看 | 老色批av在线精品| 国产精品第十页| 日韩视频免费看| 日韩一级免费| 欧美人与禽猛交乱配视频| 亚洲成人在线网| 在线不卡a资源高清| 久久国产精品第一页| 欧美一区激情| 国产精品第三页| 中文精品视频一区二区在线观看| 99热在这里有精品免费| 欧美激情一级片一区二区| 亚洲二区视频在线| 亚洲激情一区二区三区| 免费一级欧美片在线播放| 欧美1区免费| 亚洲日本va午夜在线影院| 欧美大片91| 亚洲精品一区二| 一本色道久久综合狠狠躁篇怎么玩 | 欧美日本乱大交xxxxx| 亚洲黑丝一区二区| 99精品国产99久久久久久福利| 欧美另类在线播放| 一本高清dvd不卡在线观看| 亚洲一区二区三区精品在线观看| 国产精品成人播放| 亚洲欧美日韩综合| 久久亚洲不卡| 亚洲激情女人| 欧美三级特黄| 亚洲专区一区| 欧美11—12娇小xxxx| 在线看国产日韩| 欧美区国产区| 亚洲欧美日韩精品| 欧美大色视频| 亚洲天堂av图片| 国产一在线精品一区在线观看| 久久久久久高潮国产精品视| 欧美日韩三区四区| 亚洲欧美精品一区| 久色成人在线| 妖精成人www高清在线观看| 夜夜嗨av一区二区三区四季av| 亚洲欧美在线另类| 欧美成人综合一区| 亚洲一级片在线看| 国产视频一区在线观看一区免费| 欧美电影在线| 亚洲自拍电影| 亚洲国产精品久久久| 亚洲一区二区视频| 麻豆久久久9性大片| 在线视频精品一区| 黄色成人在线| 欧美色精品在线视频| 久久国产精品一区二区| 亚洲国产三级在线| 欧美一区三区二区在线观看| 亚洲国产日韩欧美在线动漫| 国产精品第2页| 欧美成人一区二免费视频软件| 亚洲天堂激情| 亚洲国产高清在线| 欧美在线观看视频一区二区三区| 亚洲激情视频网| 久久久中精品2020中文| 国产日韩在线亚洲字幕中文| 亚洲理伦电影| 欧美国产另类| 欧美一区二区三区在| 国产精品久久久久久久久果冻传媒 | 亚洲国产精品va在线看黑人| 夜夜嗨av一区二区三区 | 国产精品欧美久久久久无广告| 欧美成人精品高清在线播放| 宅男66日本亚洲欧美视频| 久久久亚洲综合| 午夜精品一区二区三区在线| 一区二区三区免费网站| 亚洲成色精品| 激情综合色综合久久综合| 国产精品视频导航| 欧美天堂亚洲电影院在线观看| 欧美mv日韩mv国产网站app| 久久精品国产亚洲精品| 亚洲欧美日本日韩| 亚洲小视频在线观看| 夜夜嗨一区二区三区| 日韩视频在线观看一区二区| 亚洲电影在线| 欧美激情偷拍| 亚洲电影免费观看高清完整版在线| 久久精品国产96久久久香蕉| 欧美一区二区三区在线播放| 午夜欧美精品| 欧美一级久久久久久久大片| 亚洲欧美电影在线观看| 亚洲欧美电影院| 先锋影音网一区二区| 亚洲欧美在线免费观看| 香蕉成人伊视频在线观看| 亚洲欧美在线网| 欧美一区二区高清| 久久精品一本| 麻豆精品传媒视频| 欧美99久久| 亚洲电影有码| 在线视频欧美精品| 亚洲欧美在线aaa| 欧美一区二区成人6969| 久久久久www| 男人的天堂亚洲在线| 欧美精品激情blacked18| 欧美性淫爽ww久久久久无| 国产精品视频免费观看| 狠狠入ady亚洲精品| 亚洲国产精品一区制服丝袜 | 亚洲色诱最新| 欧美一级久久久| 久久尤物视频| 欧美午夜精品一区| 国模叶桐国产精品一区| 亚洲国产精品一区制服丝袜| av成人动漫| 欧美中文字幕视频在线观看| 久久综合伊人77777蜜臀| 欧美韩日一区二区三区| 国产精品久久久爽爽爽麻豆色哟哟| 久久亚洲免费| 欧美日韩一区二区在线| 国产亚洲精品一区二区| 亚洲美女毛片| 久久成人精品电影| 亚洲福利视频一区| 亚洲欧美在线免费| 欧美二区不卡| 国产最新精品精品你懂的| 亚洲黄色尤物视频| 欧美亚洲一区三区| 91久久在线观看| 欧美在线黄色| 欧美午夜激情在线| 亚洲国产成人91精品| 欧美一区二区三区男人的天堂| 欧美国产三级| 午夜亚洲精品| 欧美日韩中文字幕在线视频| 精品成人国产| 欧美在线亚洲综合一区| 91久久精品美女高潮| 久久九九99| 国产精品美女视频网站| 亚洲精品国产欧美| 久久久久久久性| 亚洲一区二区三区四区中文 | 欧美中文字幕在线观看| 欧美日韩午夜剧场| 亚洲国产人成综合网站| 久久精品二区亚洲w码| 国产精品区二区三区日本| 欧美成人蜜桃| 黄色日韩精品| 欧美在线一级va免费观看| 亚洲精品在线观看视频| 玖玖综合伊人| 伊人春色精品| 免费成人高清视频| 久久99伊人| 国产亚洲电影| 久久国产婷婷国产香蕉| 亚洲小说欧美另类社区| 欧美视频在线观看免费网址| 亚洲精品一级| 亚洲国产精品国自产拍av秋霞| 久久亚洲国产精品日日av夜夜| 国产一区二区高清视频| 久久av一区二区三区| 亚洲免费在线看| 国产乱码精品一区二区三区忘忧草 | 在线视频日本亚洲性| 欧美日韩一区成人| 亚洲天堂免费观看| 亚洲精品黄色| 欧美亚男人的天堂| 欧美一区二区三区的| 欧美一区二区三区精品|