# re: Galaxy2D游戲引擎教程6 - 音樂(lè)和音效[未登錄](méi) 回復(fù) 更多評(píng)論
2010-04-23 17:01 by
期待博主什么時(shí)候來(lái)個(gè)小型完整的RPG游戲教材就好了,方便下我們這些個(gè)新手
嗯,如果有時(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);
}
@斷桿破槍頭
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)題加類型轉(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)
這個(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)題了)
然后再用下面的代碼把地圖畫出來(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()將地圖畫出來(lái)就可以了
# re: Galaxy2D游戲引擎教程6 - 音樂(lè)和音效[未登錄](méi) 回復(fù) 更多評(píng)論
2015-10-03 13:39 by
正在寫一個(gè)語(yǔ)音播放類,發(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;
}
@shepherd
已經(jīng)修復(fù)了,請(qǐng)下載最新版引擎,感謝反饋