Posted on 2013-09-30 13:16
劍孤寒 閱讀(6310)
評論(154) 編輯 收藏 引用 所屬分類:
Galaxy2D 游戲引擎發布
Galaxy2D Game Engine 4.2 開發版 下載地址 D3DRender
最近這邊不能評論了,到主站上新建了個博客,請大家移步新博客:
注意:
1.下載后的壓縮包請使用WinRar5.0打開。
2.開發版包含了現在正在開發中的Galaxy2D游戲引擎全部新特性,可能包含一些未知bug,如果在使用中發現問題或bug請在此頁留言。
1. 本軟件著作權歸沈明所有,保留所有權利。任何個人或團體可以免費使用本引擎開發商業或非商業用途的游戲和程序,可以修改和使用公開發布的源代碼,同時可以任意轉載復制本引擎,但必須保證復制的完整性。
2. 不得對本游戲引擎進行反向工程、反向編譯或反匯編,不得對本引擎所含的代碼庫及附帶的工具程序作任何修改,破壞引擎的完整性。
3. 本游戲引擎是免費軟件,對于由于使用本引擎引起的任何不良后果,用戶必須自己承擔風險,如果用戶使用本引擎用于任何非法目的,用戶必須獨立承擔由此帶來的法律責任。
引擎說明:
Galaxy2D游戲引擎是一個基于D3D硬件加速的2D游戲引擎,主要特性有:
1. 支持高性能的圖形渲染及特殊效果(如:縮放、旋轉、透視、alpha混合等)
2. 支持常用音頻格式(wave, ogg, mp3),提供高效的并發播放等功能,支持3D音效
3. 支持常用圖片格式(bmp, png, jpg, tga, dds),支持alpha通道自動混合等
4. 提供高性能的字體渲染模塊,支持中文等語言,支持TrueType和圖片字體
5. 提供資源數據載入模塊,支持文件包數據讀取,自帶文件打包加密工具
6. 提供資源管理模塊,簡化游戲中的資源管理,并帶有資源管理器
7. 提供高效的粒子系統以及粒子編輯器
8. 提供易用的GUI模塊以及GUI編輯器
9. 支持載入和顯示任意尺寸圖片
10. 支持視頻播放和打包加密功能
Windows 98 及以上操作系統
DirectX 9.0c
Microsoft Visual Studio 2003 及以上版本
主頁地址: http://www.shnenglu.com/jianguhan/
電子郵箱: jianguhan@126.com
Feedback
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2013-09-30 13:17 by
更新記錄:
4.1
◆修改一個會引起紋理內存占用過高的bug
◆ggeTextureSaveToFile()函數添加DDS格式支持
◆TexturePacker添加導出dds壓縮格式紋理功能
◆粒子系統添加發射器屬性
◆粒子系統添加漸變顏色屬性
◆重寫字體引擎,支持非等寬字體,提升繪制效率,支持創建自定義字體
◆字體引擎去掉GDI繪制字體功能
◆提升XML模塊解析速度(40%以上),降低內存占用量(20%以上)
◆移除XML模塊不常用函數
◆移除ggeMusic模塊
◆ggeSound模塊去掉不常用函數
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2013-10-31 22:12 by
Render4V (float x0, float y0, float x1, float y1, float x2, float y2, float x3, float y3)
可以畫出正常的不規則的四邊形嗎!
好像畫出的梯形不對
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2013-10-31 22:17 by
ggefont中的SetColor (gUInt color)方法,會引用地址有問題
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2013-11-14 22:34 by
有相關的易語言的開發模塊么,謝謝能提供。
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2013-12-28 17:53 by
@fantod
Render4V (float x0, float y0, float x1, float y1, float x2, float y2, float x3, float y3)
可以畫出正常的不規則的四邊形嗎!
好像畫出的梯形不對
可以的,請確定頂點都設對沒有
----------------------------------------------------
ggefont中的SetColor (gUInt color)方法,會引用地址有問題
請確定字體創建成功沒有,注意,從該版本不再支持系統字體,只能從ttf之類的文件創建字體
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2013-12-28 17:54 by
@kuyu
抱歉,暫時沒有開發易語言版本的計劃
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2014-01-26 11:28 by
Update (2014-1-26):
◆修改ggeGuiLoader可以設置一個默認創建函數
◆ggeSprite刪除RenderEx等函數,添加SetPosition等函數用于設置渲染位置,只在必要時刷新渲染位置即可
◆粒子系統去掉useFadeColor屬性,增加fadeColorWeight屬性,用于控制漸變到過渡顏色的速度
◆重構ggeRenderObj
◆重構Gui系統
◆TexturePacker文件列表增加圖標以區分文件和目錄
◆TexturePacker文件列表增加自動排序功能
◆TexturePacker增加紋理縮放功能
◆TexturePacker修改導出文件字段名,詳見工具文檔
◆TexturePacker添加紋理尺寸檢測功能,盡可能生成小于最大紋理尺寸的紋理
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2014-02-07 11:54 by
gui編輯器,打開例子2,編輯皮膚,怎么看不到圖片
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2014-02-09 23:08 by
@baidwwy
此問題已修正,引擎已重新發布,感謝反饋!
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2014-02-10 13:46 by
Update (2014-2-10):
◆ggeSprite修改初始化和用SetPosition()方式渲染時,設置紋理自動重設頂點坐標到紋理大小
◆修改GUI編輯器編輯皮膚無法看見貼圖的問題
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2014-02-21 04:03 by
Graph_BeginScene
如果渲染到目標紋理,里面的東西都變淡了,這是bug?
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2014-02-21 23:58 by
@baidwwy
不知道你代碼是怎么寫的,正常來說是不會變淡的,請確定創建的渲染目標紋理是不帶alpha通道的,那個是留作特殊用途的,通常情況并不需要創建帶alpha通道的渲染目標紋理
# re: Galaxy2D Game Engine 4.1 開發版 發布 [未登錄] 回復 更多評論
2014-02-25 22:02 by
希望恢復GDI字體或開源 4.0的字體源碼.
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2014-02-27 09:47 by
@路人甲
不知你為啥要用到GDI字體,個人覺得那玩意顯示的文字質量實在不咋地,沒必要再用了
# re: Galaxy2D Game Engine 4.1 開發版 發布 [未登錄] 回復 更多評論
2014-02-27 16:30 by
@劍孤寒
現在的字體顯示小字體時,又粗又大,再小,就完全看不見...
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2014-02-28 16:01 by
@路人甲
嗯,稍后加上反鋸齒開關,小字體關掉反鋸齒就行了
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2014-03-02 18:29 by
Graph_SetClipping
不管任何值為0,都會失效.
建議增加截圖到內存
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2014-03-03 10:11 by
@baidwwy
Graph_SetClipping
不管任何值為0,都會失效.
這是個bug,稍后修復,感謝反饋
--------------------------------------
建議增加截圖到內存
這個可以用Graph_GetRenderTarget()函數獲取當前屏幕截圖到內存,然后可以用ggeTexture::SaveToFile()函數保存到文件,如果你獲取上面的顏色值,需要在創建渲染目標紋理時設置TARGET_LOCKABLE標志,然后在調用Graph_GetRenderTarget()函數后就可以用ggeTexture::Lock()函數獲取上面的顏色值了
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2014-03-03 10:47 by
Update (2014-3-3):
◆創建渲染目標紋理函數Texture_CreateRenderTarget()添加targetType參數
◆創建字體函數Font_Create()添加抗鋸齒參數
◆ggeResManager::CreateCustomFont()添加抗鋸齒參數
◆修改ggeGuiRichText某些屬性改變沒有刷新顯示內容
◆修改GUI在Debug模式下可能會崩潰的問題
◆修改Graph_SetClipping()若某一項為0時設置無效的Bug
◆資源文件字體粗體屬性名修改成“Bold”,以前ResEditor中設置的粗體字體需要重新設置
◆資源編輯器添加字體抗鋸齒設置
◆GUI編輯器添加字體抗鋸齒設置
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2014-03-18 20:00 by
Texture_Load 載入的DDS16位565圖像
Lock返回的并不是32位像素,而是16位
這樣就沒有辦法設置alpha了,請問這個是否BUG?
引擎啟動參數都是默認的.
如果不行只能用Texture_Create了...
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2014-03-19 20:06 by
如果沒有使用SetPosition
那么SetTextureRect也是無效的.
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2014-03-20 10:36 by
@baidwwy
Texture_Load 載入的DDS16位565圖像
Lock返回的并不是32位像素,而是16位
這樣就沒有辦法設置alpha了,請問這個是否BUG?
出于效率和內存占用等方面的考慮,dds格式圖片載入時并不轉換成32位顏色紋理,可用dds格式算法獲取或設置上面的像素顏色,或者像這類圖片不要使用dds格式,可以使用png之類的格式
--------------------------------------------------------------
如果沒有使用SetPosition
那么SetTextureRect也是無效的.
理論上來說 SetPosition 跟 SetTextureRect 是完全沒有關系的,應該不會有這樣的問題,請確保已經使用最新版的引擎,如果還有問題,請貼一小段能重現問題的代碼,以便調試
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2014-07-04 22:29 by
建議增加無邊框參數.讓窗口無邊框,像DNF
雖然可以通過SetWindowLongA來設置,但會閃一下有邊的才消失.
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2014-07-07 12:40 by
這個可以通過消息處理函數來解決,先添加一個全局函數如下:
bool WndProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
{
if (msg == WM_STYLECHANGING && wparam == GWL_STYLE)
{
STYLESTRUCT *StyleStruct = (STYLESTRUCT*)lparam;
StyleStruct->styleNew = WS_POPUP|WS_VISIBLE;
}
return false;
}
然后在調用System_Initiate()函數前設置消息處理函數即可:
System_SetState(GGE_MESSAGEFUNC, WndProc);
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2014-07-07 16:28 by
非常感謝,受教了.@劍孤寒
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2014-07-19 13:30 by
取INI 文本的長度限制了255,Ini_GetString
這個有沒有可能更新.
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2014-07-21 10:31 by
對于長度比較大的字符串建議保存到資源文件或者用XML模塊保存xml文件里,如果你一定要用ini文件,可以直接調用GetPrivateProfileString()函數,例如:
char buffer[1024];
GetPrivateProfileString(section, name, def_val, buffer, 1024, "config.ini");
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2014-07-27 18:17 by
不知道易語言能不能調用呢?
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2014-07-28 10:32 by
易語言應該可以調用c++的dll里的函數的吧,對易語言不熟,你可以試一下,如果不行,也可以自行用c++簡單封裝一下導出成易語言可以用的dll就行了
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2014-09-21 12:02 by
Update (2014-9-21) :
◆ggeParticleInfo添加rotToDir參數
◆添加多種擴展Alpha混合方式(ALPHA_BLEND_MODE),可以與BLEND_MODE組合使用
◆添加GenAlphaBlendModeArg()/GenAlphaChannelBlendModeArg()函數用于生成Alpha混合模式參數和Alpha通道混合模式參數
◆添加GGE_MAXTEXTUREUNIT系統狀態用于獲取顯卡支持的最大紋理單元數
◆添加GGE_ALPHARENDERTARGET系統狀態用于檢測顯卡是否支持創建帶Alpha通道的渲染目標紋理
◆刪除ggeResManager::GarbageCollect()函數,添加 ResManager_GarbageCollect()函數
◆ggeXmlNode添加SetCData()/IsCData()函數
# re: Galaxy2D Game Engine 4.1 開發版 發布 [未登錄] 回復 更多評論
2015-01-15 14:51 by
@kuyu
有。易語言論壇曾經有人發布過
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2015-01-17 19:54 by
嘻嘻
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2015-03-24 14:47 by
建議 畫線能設置粗細.
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2015-03-25 09:44 by
@baidwwy
要畫粗線可以用ggeSprite::Render4V()函數,自己算一下四個定點的坐標就好了
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2015-04-13 10:58 by
建議支持從像素創建紋理
比如紋理鎖定返回的指針,
或是刪除了TGA文件頭的文件,只要提供寬高.顏色格式RGBA等信息
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2015-04-14 09:33 by
@baidwwy
從像素創建紋理可以手動創建一個紋理,lock后把像素復制上去即可,作為一個程序猿,不可以太偷懶哈,至于從刪除了文件頭的文件創建紋理,你為啥會有這種需求?直接從原始文件創建有什么問題?
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2015-04-17 11:10 by
@劍孤寒
我已經發現了^^
引擎非常好用,非常感謝!
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2015-04-17 11:12 by
不知是否可以創建個群。。有時發現問題(其實是不會用)
很難找到交流。。。
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2015-04-20 13:00 by
@baidwwy
這個其實以前就有同學提過,不過因為各種原因,我基本上都不用聊天工具的,所以就一直沒弄,發現問題還是直接在這問或者發郵件給我吧
# re: Galaxy2D Game Engine 4.1 開發版 發布 [未登錄] 回復 更多評論
2015-05-07 23:13 by
當創建引擎時,如果傳入的窗口寬度小于三個控制按鈕(最小鈕+最大鈕+關閉鈕)的寬度會出現一件神奇的事情,您可以測試一下。
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2015-05-08 09:25 by
@fox
!_!你這是要做一個用放大鏡才能玩的游戲么...
# re: Galaxy2D Game Engine 4.1 開發版 發布 [未登錄] 回復 更多評論
2015-05-10 16:18 by
ggeSprite調用SetTextureRect設置了顯示區域,然后如果不SetPosition設置渲染位置的話,顯示出來的效果就變成了拉伸縮放,且顯示區域也不是設置的Rect,而是原來的大小。不知是不是BUG
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2015-05-11 12:20 by
@fox
這個不是bug,如果修改了紋理顯示區域必須調用一次SetPosition函數來刷新sprite的頂點位置,否則用原頂點位置顯示就會變成拉伸的樣子了,考慮到再調用一次SetPosition函數并不困難,所以之前沒有在sprite上增加自動刷新頂點的代碼,還可以省去一些內存消耗和一些不必要的計算,不過現在電腦性能也越來越好了,這點消耗應該也沒什么大問題,下個版本考慮加一下自動刷新功能好了
# re: Galaxy2D Game Engine 4.1 開發版 發布 [未登錄] 回復 更多評論
2015-05-11 21:38 by
強烈要求開源,開源大家學習學習
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2015-05-12 08:37 by
@ben
這個之前已經說過多次了,真的不能有啊
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2015-05-21 18:10 by
怎么創建兩個引擎窗口呢,一個DLL創建兩個窗口。
一個游戲,一個用于顯示聊天信息?
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2015-05-22 08:58 by
@baidwwy
引擎不支持這個功能,需要另外寫個exe,然后在主進程啟動并通過進程間消息通信來同步數據,其實如果只是要聊天的話,你可以自己創建一個窗口,用windows自帶的控件做就可以了
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2015-06-08 20:38 by
希望老大花點時間讓編輯框支持拖選和點擊位置。
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2015-06-09 18:42 by
@baidwwy
這個有時間可以弄一下
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2015-06-11 08:32 by
Update (2015-6-10)
◆ggeGuiManager添加Clear()函數,用來清除所有窗口
◆ggeGuiEditBox添加鼠標點擊選擇輸入位置功能
◆修改GGE_TITLE系統狀態可以在運行時更改
◆ggeVector添加LengthSquared()函數
◆切換渲染目標時不重置變換矩陣
◆ggeVector一些函數的參數和返回值修改為引用形式,添加AngleTo()函數
◆ggeRect的Intersect()函數參數修改為引用
◆Shader_SetCurrentShader()/Shader_GetCurrentShader()改成Graph_SetCurrentShader()/Graph_GetCurrentShader()
◆修改ggeSprite調用設置紋理區域等函數后刷新頂點坐標
◆數學庫添加ggeVector3/ggeMatrix4
◆添加Graph_SetProjectionMatrix()/Graph_GetProjectionMatrix()/Graph_SetViewMatrix()/Graph_GetViewMatrix()函數
◆修改設置GGE_ZBUFFER后立即生效,而不是等到下一幀才生效
◆添加GGE_CODEPAGE用于設置代碼頁
◆GUIEditor添加控件位置和尺寸回退功能
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2015-06-14 16:11 by
GUI編輯器
建議:當控件選擇皮膚時,控件的寬高應該默認為皮膚寬高。
建議:增加復制控件功能。
建議:保存控件預覽狀態。
建議:編輯皮膚時,選擇新的圖片文件時,皮膚寬高也應該默認為圖片寬高。
BUG: 字體非加邊時,設置控件無效則無法顯示。(宋體測試)
EditBox
建議:增加可以設置光標精靈
建議:增加數字模式和密碼模式
ListBox
建議:增加可以設置選中和焦點顏色
建議:增加可以設置選中和焦點精靈
使用了幾天GUI感覺良好,給點建議。
希望增加自定義控件的例子。
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2015-06-15 00:11 by
通知父窗口不管有沒有勾選,都會收到子控件的消息。
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2015-06-15 11:54 by
代碼開不開源無所謂
# re: Galaxy2D Game Engine 4.1 開發版 發布 回復 更多評論
2015-06-16 14:15 by
@baidwwy
1.當控件選擇皮膚時,控件的寬高應該默認為皮膚寬高。
這個不能有,如果有控件已經編輯好寬高,換個皮膚就要再重新編輯一次,豈不蛋疼
2.增加復制控件功能。
復制功能已經有了,注意看工具文檔
3.保存控件預覽狀態。
如果保存控件預覽狀態,如果忘記改回去會對正常編輯造成干擾,所以這個不能有
4.編輯皮膚時,選擇新的圖片文件時,皮膚寬高也應該默認為圖片寬高。
為了提高渲染效率,應該把UI用到的圖片拼到一張大圖上,既然這張圖上有各種UI圖片,顯然不可能同時貼到一個控件上,所以設置為圖片寬高也就沒啥意義了
5.字體非加邊時,設置控件無效則無法顯示。
皮膚里控件無效時字體顏色為灰色,你仔細看下是不是跟你的背景色一樣了,所以覺得無法顯示了
6.建議:增加可以設置光標精靈
建議:增加數字模式和密碼模式
這個可以有
7.建議:增加可以設置選中和焦點顏色
設置皮膚Press和MouseOver狀態顏色即可
8.建議:增加可以設置選中和焦點精靈
這個可以有
9.通知父窗口不管有沒有勾選,都會收到子控件的消息
注意看函數說明,這個功能主要用于攔截子控件消息,并不表示不開這個功能子空間就不發送消息給父窗口了