• <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>

            劍孤寒的小站

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

            這篇教程將介紹如何用Galaxy2D游戲引擎構建一個最基礎的應用程序。

             

            首先設置編譯環境:

            1. 新建一個Win32項目,打開Galaxy2D引擎目錄,復制engine到當前項目目錄下。

            2. 在項目屬性選項卡中的附加包含目錄中加入引擎頭文件目錄"engine/inc"

            3. 附加依賴項中加入"engine/lib/galaxy2d.lib"

            4. 復制動態鏈接庫"engine/lib/galaxy2d.dll"至工作目錄。

             

            接下來在當前工程新建一個main.cpp文件,把下面內容添加進去:

            #include "ggebase.h"
            using namespace gge;

            //幀函數
            bool Frame()
            {
                
            //開始渲染
                if (Graph_BeginScene())
                
            {
                    
            //清屏
                    Graph_Clear();

                    
            //畫一個矩形
                    Graph_RenderQuad(300.0f220.0f340.0f260.0f);

                    
            //結束渲染
                    Graph_EndScene();
                }


                
            return false;
            }


            WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, 
            int)
            {
                
            //創建游戲引擎
                if (!Engine_Create()) return 0;

                System_SetState(GGE_TITLE, 
            "Galaxy2D Game Engine - Hello World");
                
            //設置幀函數
                System_SetState(GGE_FRAMEFUNC, Frame);
                
            //設置幀率
                System_SetState(GGE_FPS, 30);

                
            //系統初始化
                if (System_Initiate()) 
                
            {
                    
            //開始運行幀函數
                    System_Start();
                }


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


            如果編譯成功運行該程序將會在屏幕中間顯示一個白色的方塊,現在我們回顧一下前面的代碼,看看Galaxy2D游戲引擎是如何運作的。

            WinMain()函數中首先調用Engine_Create()函數,這個函數將初始化游戲引擎運行環境以及進行一些基礎檢測。之后調用System_SetState()函數設置了一些引擎運行狀態,這些狀態后面會講到,然后就可以調用System_Initiate()進行引擎初始化。如果引擎初始化成功調用System_Start()函數,至此游戲引擎才真正開始運作。最后,在游戲引擎關閉時必須調用Engine_Release()做一些清理工作。

            在引擎初始化之前我們設置了三個狀態,首先是“GGE_TITLE”,這個狀態設置的是程序標題欄文字;然后是“GGE_FRAMEFUNC”,這個狀態設置幀函數,也就是游戲的主循環;最后是“GGE_FPS”,這個狀態告訴引擎主循環將以30fps的幀率運行,減小CPU占用率。需要注意的是“GGE_FRAMEFUNC”和“GGE_FPS”是可以在運行時更改的,而“GGE_TITLE”一旦系統初始化完畢就無法更改了,詳細信息可以查看引擎文檔。

            為了在屏幕中間畫一個白色的方塊,在幀函數Frame()里做了如下工作。首先調用Graph_BeginScene()函數告訴引擎要開始畫東西了,如果該函數返回true表示引擎已準備好,接下來調用Graph_Clear()清屏,然后用Graph_RenderQuad()函數畫矩形,最后調用Graph_EndScene()告訴引擎東西全都畫完了。

            Feedback

            # re: Galaxy2D游戲引擎教程1 - Hello World  回復  更多評論   

            2010-01-02 17:02 by Davy.xu
            開源吧,HGE都開源了,你的接口跟HGE也差不多

            # re: Galaxy2D游戲引擎教程1 - Hello World  回復  更多評論   

            2010-01-02 19:58 by 劍孤寒
            你好,
            Galaxy2D游戲引擎暫時不會開源,
            如果以后有時間重構引擎的話會考慮開源現在的版本。

            接口跟HGE差不多是因為接口本來就是抄HGE的:)
            早在2004年我就已經接觸HGE了,
            由于當時HGE還沒有開源,
            很多擴展功能不容易實現,
            而且還不支持中文,
            所以寫了個HGE中文加強版,
            接口是抄HGE的,
            而內部實現都是自己寫的(后來HGE開源后發現內部代碼結構還沒有我寫的好^_^),
            經過幾次大的改版最終形成現在的Galaxy2D游戲引擎。

            Galaxy2D雖然接口跟HGE相似,但內部實現其實有很大差別,Galaxy2D相對HGE有以下優點:
            1.自帶音頻播放功能,HGE需要通過bass.dll播放音頻文件,而bass.dll是要收費滴
            2.支持視頻播放,可以控制時間軸以實現像《幻想三國志》那樣的帶對話的過場動畫
            3.支持高效中文字體渲染,支持字體加邊、字體陰影,自動換行,行間距,字間距,保存/回復字體當前狀態等功能
            4.支持任意尺寸貼圖,即使超過顯卡最大紋理尺寸也沒關系
            5.RenderTarget紋理也可以鎖定,并且在設備丟失后不會丟失紋理上的內容
            6.增強型粒子系統以及粒子編輯器
            7.可以很容易的跟MFC等應用程序框架結合制作游戲工具
            8.基于Window的GUI系統并帶有GUI布局器(以后有時間會增加一些新控件和新的GUI編輯器)
            9.支持PixelShader,可以用GPU高效的實現一些特殊效果
            10.帶有一個游戲應用程序框架,封裝了一些常用功能,比如游戲內嵌控制臺和程序崩潰自動生成dump文件等
            11.提供渲染對象管理框架
            12.提供擴展資源管理器
            13.提供擴展序列幀動畫
            14.提供導出類到lua的一些幫助函數,支持多繼承

            # re: Galaxy2D游戲引擎教程1 - Hello World  回復  更多評論   

            2010-01-03 16:09 by Sunshine Alike
            支持一下,新近剛開始學習游戲引擎,有時間學習一下博主的引擎 @_@

            # re: Galaxy2D游戲引擎教程1 - Hello World  回復  更多評論   

            2010-01-03 17:21 by 劍孤寒
            呵呵,多謝支持:)

            # re: Galaxy2D游戲引擎教程1 - Hello World  回復  更多評論   

            2010-01-13 17:04 by xxx
            希望能提供更多得引擎教程,謝謝!
            看了博主的引擎收益匪淺,能不能再引擎中加入網絡通信

            # re: Galaxy2D游戲引擎教程1 - Hello World  回復  更多評論   

            2010-01-13 20:23 by 劍孤寒
            嗯,
            教程會陸續放出,
            由于現在已經有很多很好的網絡庫了,
            所以Galaxy2D暫時不會考慮加入網絡庫,
            謝謝你的支持:)

            # re: Galaxy2D游戲引擎教程1 - Hello World  回復  更多評論   

            2010-02-01 15:06 by 小蔥
            很不錯的引擎啊
            之前有用過HGE的
            現在改用你的啦~
            加油加油~

            # re: Galaxy2D游戲引擎教程1 - Hello World  回復  更多評論   

            2010-02-02 18:26 by 劍孤寒
            呵呵,
            多謝支持,
            在使用中如果遇到什么問題請在相應版本引擎發布帖留言,
            我會及時處理的:)

            # re: Galaxy2D游戲引擎教程1 - Hello World  回復  更多評論   

            2015-03-18 22:32 by 閔聰
            這個不見了

            # re: Galaxy2D游戲引擎教程1 - Hello World  回復  更多評論   

            2015-03-19 09:16 by 劍孤寒
            恩,因為放上來的文件總是無故失蹤,所以刪掉了,請自己建個工程,按說明文檔調好配置,再把上面的代碼復制進去就可以了
            蜜臀av性久久久久蜜臀aⅴ麻豆| 久久久久久极精品久久久| 中文字幕精品久久| 中文字幕乱码久久午夜| 久久久久亚洲精品无码蜜桃| 久久777国产线看观看精品| 久久国产精品久久精品国产| 久久久久九九精品影院| 精品久久久无码21p发布| 久久99精品国产99久久6男男| 亚洲国产精品无码久久九九| 国产V亚洲V天堂无码久久久| 久久99久久成人免费播放| 亚洲AV日韩精品久久久久久 | 久久99国内精品自在现线| 久久久久久亚洲精品不卡 | 亚洲AV无一区二区三区久久| 久久国产精品久久国产精品| 久久久久亚洲AV无码观看| 色综合久久88色综合天天| 波多野结衣AV无码久久一区| 久久久久亚洲精品男人的天堂| 亚洲午夜久久久久久噜噜噜| 亚洲人成网站999久久久综合| 国产一久久香蕉国产线看观看 | 久久伊人五月丁香狠狠色| 精品人妻伦九区久久AAA片69 | 狠狠色狠狠色综合久久| 久久久精品久久久久特色影视| 久久综合中文字幕| 国内精品久久久久久野外| 久久丫精品国产亚洲av不卡| 国产亚洲精久久久久久无码77777| 一级做a爰片久久毛片免费陪| 国产激情久久久久影院老熟女| 久久九九亚洲精品| 久久免费高清视频| 国产精品99久久久久久董美香| 久久久久久亚洲精品无码| 久久影视综合亚洲| 国产精品久久新婚兰兰|