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

            劍孤寒的小站

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

            這篇教程將介紹如何用Galaxy2D游戲引擎構(gòu)建一個(gè)最基礎(chǔ)的應(yīng)用程序。

             

            首先設(shè)置編譯環(huán)境:

            1. 新建一個(gè)Win32項(xiàng)目,打開(kāi)Galaxy2D引擎目錄,復(fù)制engine到當(dāng)前項(xiàng)目目錄下。

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

            3. 附加依賴項(xiàng)中加入"engine/lib/galaxy2d.lib"

            4. 復(fù)制動(dòng)態(tài)鏈接庫(kù)"engine/lib/galaxy2d.dll"至工作目錄。

             

            接下來(lái)在當(dāng)前工程新建一個(gè)main.cpp文件,把下面內(nèi)容添加進(jìn)去:

            #include "ggebase.h"
            using namespace gge;

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

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

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


                
            return false;
            }


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

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

                
            //系統(tǒng)初始化
                if (System_Initiate()) 
                
            {
                    
            //開(kāi)始運(yùn)行幀函數(shù)
                    System_Start();
                }


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


            如果編譯成功運(yùn)行該程序?qū)?huì)在屏幕中間顯示一個(gè)白色的方塊,現(xiàn)在我們回顧一下前面的代碼,看看Galaxy2D游戲引擎是如何運(yùn)作的。

            WinMain()函數(shù)中首先調(diào)用Engine_Create()函數(shù),這個(gè)函數(shù)將初始化游戲引擎運(yùn)行環(huán)境以及進(jìn)行一些基礎(chǔ)檢測(cè)。之后調(diào)用System_SetState()函數(shù)設(shè)置了一些引擎運(yùn)行狀態(tài),這些狀態(tài)后面會(huì)講到,然后就可以調(diào)用System_Initiate()進(jìn)行引擎初始化。如果引擎初始化成功調(diào)用System_Start()函數(shù),至此游戲引擎才真正開(kāi)始運(yùn)作。最后,在游戲引擎關(guān)閉時(shí)必須調(diào)用Engine_Release()做一些清理工作。

            在引擎初始化之前我們?cè)O(shè)置了三個(gè)狀態(tài),首先是“GGE_TITLE”,這個(gè)狀態(tài)設(shè)置的是程序標(biāo)題欄文字;然后是“GGE_FRAMEFUNC”,這個(gè)狀態(tài)設(shè)置幀函數(shù),也就是游戲的主循環(huán);最后是“GGE_FPS”,這個(gè)狀態(tài)告訴引擎主循環(huán)將以30fps的幀率運(yùn)行,減小CPU占用率。需要注意的是“GGE_FRAMEFUNC”和“GGE_FPS”是可以在運(yùn)行時(shí)更改的,而“GGE_TITLE”一旦系統(tǒng)初始化完畢就無(wú)法更改了,詳細(xì)信息可以查看引擎文檔。

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

            Feedback

            # re: Galaxy2D游戲引擎教程1 - Hello World  回復(fù)  更多評(píng)論   

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

            # re: Galaxy2D游戲引擎教程1 - Hello World  回復(fù)  更多評(píng)論   

            2010-01-02 19:58 by 劍孤寒
            你好,
            Galaxy2D游戲引擎暫時(shí)不會(huì)開(kāi)源,
            如果以后有時(shí)間重構(gòu)引擎的話會(huì)考慮開(kāi)源現(xiàn)在的版本。

            接口跟HGE差不多是因?yàn)榻涌诒緛?lái)就是抄HGE的:)
            早在2004年我就已經(jīng)接觸HGE了,
            由于當(dāng)時(shí)HGE還沒(méi)有開(kāi)源,
            很多擴(kuò)展功能不容易實(shí)現(xiàn),
            而且還不支持中文,
            所以寫(xiě)了個(gè)HGE中文加強(qiáng)版,
            接口是抄HGE的,
            而內(nèi)部實(shí)現(xiàn)都是自己寫(xiě)的(后來(lái)HGE開(kāi)源后發(fā)現(xiàn)內(nèi)部代碼結(jié)構(gòu)還沒(méi)有我寫(xiě)的好^_^),
            經(jīng)過(guò)幾次大的改版最終形成現(xiàn)在的Galaxy2D游戲引擎。

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

            # re: Galaxy2D游戲引擎教程1 - Hello World  回復(fù)  更多評(píng)論   

            2010-01-03 16:09 by Sunshine Alike
            支持一下,新近剛開(kāi)始學(xué)習(xí)游戲引擎,有時(shí)間學(xué)習(xí)一下博主的引擎 @_@

            # re: Galaxy2D游戲引擎教程1 - Hello World  回復(fù)  更多評(píng)論   

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

            # re: Galaxy2D游戲引擎教程1 - Hello World  回復(fù)  更多評(píng)論   

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

            # re: Galaxy2D游戲引擎教程1 - Hello World  回復(fù)  更多評(píng)論   

            2010-01-13 20:23 by 劍孤寒
            嗯,
            教程會(huì)陸續(xù)放出,
            由于現(xiàn)在已經(jīng)有很多很好的網(wǎng)絡(luò)庫(kù)了,
            所以Galaxy2D暫時(shí)不會(huì)考慮加入網(wǎng)絡(luò)庫(kù),
            謝謝你的支持:)

            # re: Galaxy2D游戲引擎教程1 - Hello World  回復(fù)  更多評(píng)論   

            2010-02-01 15:06 by 小蔥
            很不錯(cuò)的引擎啊
            之前有用過(guò)HGE的
            現(xiàn)在改用你的啦~
            加油加油~

            # re: Galaxy2D游戲引擎教程1 - Hello World  回復(fù)  更多評(píng)論   

            2010-02-02 18:26 by 劍孤寒
            呵呵,
            多謝支持,
            在使用中如果遇到什么問(wèn)題請(qǐng)?jiān)谙鄳?yīng)版本引擎發(fā)布帖留言,
            我會(huì)及時(shí)處理的:)

            # re: Galaxy2D游戲引擎教程1 - Hello World  回復(fù)  更多評(píng)論   

            2015-03-18 22:32 by 閔聰
            這個(gè)不見(jiàn)了

            # re: Galaxy2D游戲引擎教程1 - Hello World  回復(fù)  更多評(píng)論   

            2015-03-19 09:16 by 劍孤寒
            恩,因?yàn)榉派蟻?lái)的文件總是無(wú)故失蹤,所以刪掉了,請(qǐng)自己建個(gè)工程,按說(shuō)明文檔調(diào)好配置,再把上面的代碼復(fù)制進(jìn)去就可以了
            久久婷婷五月综合色奶水99啪| 久久国产影院| 99久久亚洲综合精品成人| 精品国产福利久久久| 精品久久久久久无码人妻热| 精品久久久久久国产91| 国产亚州精品女人久久久久久| 亚洲人成无码www久久久| 无遮挡粉嫩小泬久久久久久久| 国产一区二区三区久久精品| 国产精品美女久久久| 久久久久一本毛久久久| 日本欧美久久久久免费播放网| 久久精品国产99国产精品澳门| 久久中文字幕无码专区| 久久精品国产亚洲av麻豆小说| 国产视频久久| 国产产无码乱码精品久久鸭| 亚洲一本综合久久| 精品久久久久久久无码| 婷婷久久综合九色综合绿巨人| 精品久久久噜噜噜久久久| 久久久久久国产精品无码下载| 久久久精品人妻一区二区三区四| 久久不见久久见免费影院www日本| 亚洲国产欧美国产综合久久| 蜜桃麻豆www久久| 2021久久国自产拍精品| 久久久久久久波多野结衣高潮| 国产精品成人无码久久久久久| 久久这里只有精品18| 久久精品国产久精国产果冻传媒| 久久久精品波多野结衣| 狠狠综合久久综合中文88| 亚洲国产二区三区久久| 久久精品国产一区| 久久丫精品国产亚洲av不卡 | 久久精品成人免费国产片小草| 亚洲国产精品久久电影欧美| 精品国产一区二区三区久久蜜臀| 国产精品久久一区二区三区|