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

劍孤寒的小站

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

《在Lua中使用枚舉型變量》
轉載請注明出處:http://groups.google.com/group/jianguhan


用lua來寫游戲腳本的確是一件很方便的事情,但是有時候需要用到枚舉類型時就有點麻煩了,因為lua里時沒有枚舉型變量這個東西的,所以要使用枚舉還 得自己轉換一下,我寫了一個函數用來做這種轉換:

function CreatEnumTable(tbl, index)
    assert(IsTable(tbl))
    local enumtbl = {}
    local enumindex = index or 0
    for i, v in ipairs(tbl) do
        enumtbl[v] = enumindex + i
    end
    return enumtbl
end

在需要用到枚舉變量的地方只要這樣用就行了:
EnumTable =
{
    "ET1",
    "ET2",
}

EnumTable = CreatEnumTable(EnumTable )
print(EnumTable.ET1)
print(EnumTable.ET2)

輸出為:
1
2

當然,也可以指定下標從多少開始,
比如從10開始,只要把上面創建枚舉表的語句換成下面這樣就可以了:
EnumTable = CreatEnumTable(EnumTable, 10)

posted @ 2008-10-26 11:07 劍孤寒 閱讀(15671) | 評論 (2)編輯 收藏

《在Lua中使用List 》
轉載請注明出處:http://groups.google.com/group/jianguhan


在《Programming in Lua》一書中提到了一個雙端隊列的實現方法,我把它拿來改進了一下用在了我正在制作的一個RPG游戲里,用起覺得 來還不錯,加了一個GetSize()來取得List的大小,這個在游戲制作中用處還是很大的^_^

源代碼如下:
CList = class()

function CList:ctor()
        self.m_list = { first = 0, last = -1 }
end

function CList:PushFront(value)
        local first = self.m_list.first - 1
        self.m_list.first = first
        self.m_list[first] = value
end

function CList:PushBack(value)
        local last = self.m_list.last + 1
        self.m_list.last = last
        self.m_list[last] = value
end

function CList:PopFront()
        local first = self.m_list.first
        if first > self.m_list.last then return nil end
        local value = self.m_list[first]
        self.m_list[first] = nil
        self.m_list.first = first + 1
        return value
end

function CList:PopBack()
        local last = self.m_list.last
        if self.m_list.first > last then return nil end
        local value = self.m_list[last]
        self.m_list[last] = nil
        self.m_list.last = last - 1
        return value
end

function CList:GetSize()
        if self.m_list.first > self.m_list.last then
                return 0
        else
                return math.abs(self.m_list.last - self.m_list.first) + 1
        end
end

在最前面的那句CList = class() 這里使用了云風寫的一個class函數創建一個類,
這個函數可以在云風的博客上找到,為了方便起見我就在這里先抄一下了:

local _class={}

function class(super)
        local class_type={}
        class_type.ctor=false
        class_type.super=super
        class_type.new=function(...)
                        local obj={}
                        do
                                local create
                                create = function(c,...)
                                        if c.super then
                                                create(c.super,...)
                                        end
                                        if c.ctor then
                                                c.ctor(obj,...)
                                        end
                                end

                                create(class_type,...)
                        end
                        setmetatable(obj,{ __index=_class[class_type] })
                        return obj
                end
        local vtbl={}
        _class[class_type]=vtbl

        setmetatable(class_type,{__newindex=
                function(t,k,v)
                        vtbl[k]=v
                end
        })

        if super then
                setmetatable(vtbl,{__index=
                        function(t,k)
                                local ret=_class[super][k]
                                vtbl[k]=ret
                                return ret
                        end
                })
        end

        return class_type
end

posted @ 2008-10-26 11:06 劍孤寒 閱讀(6826) | 評論 (0)編輯 收藏

前幾天在做游戲時碰到要做一個以漸變方式切換場景的特效,記得以前在RMXP中要看到過類似的特效,于是趕快把它翻出來看了看,發現效果還不錯。

    它的場景特效切換方法是:首先需要一個遮罩圖,這個圖的作用是根據時間和這個圖上灰度的值來設置切換圖的alpha值,具體的做法可以下載我寫的演示程序和源代碼,里面分別有最原始的操作像素實現這個特效的方法和使用shader來做這個特效的方法,這兩種方法的速度差別還是很大的,我更傾向于使用shader來做,另外,雖然這個演示程序是2D的,但是方法也可以原封不動的搬到3D中去^_^     下載

   

最后放上截圖一張^_^

 

 

 

 

 

 

 

 

 

 

posted @ 2008-10-26 11:03 劍孤寒 閱讀(696) | 評論 (1)編輯 收藏

RPG游戲開發日志    下載Demo
 
2008年6月28日

    最近工作仍然很忙,所以游戲制作進度還是很慢,現在已完成了系統菜單,戰斗系統也完成了一半了,等忙過這段時間,把戰斗系統寫完應該就可以更新一下Demo了。
系統菜單:



 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

戰斗系統:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2008年3月15日

    由于工作比較忙,從開始制作這個游戲到現在差不多半年了才完成游戲的一些基本系統,做這個游戲占了我大部分業余時間,雖然很累,但是跟做游戲的樂趣相比也算不了什么了。

    這個游戲決定采用《天之痕》的素材來做,一來是因為它的素材即使在今天看來仍可算得上精美,另外一個原因是當年玩這個游戲時被深深的感動了一把,所以對這個游戲留下了深刻的印象。

    好了,閑話不多說,先上一張圖吧。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

    《云城之夢》的地圖仍然使用格子來判斷行走和觸發劇情,腳本方面使用了現在在游戲制作行業開始流行的Lua語言,上圖中的對話系統就是用Lua寫的。下面為地圖編輯器:

 

 

   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

    由于這個游戲使用的是我自己寫的Galaxy2D游戲引擎,而這個引擎又是基于D3D的,在比如顯示游戲大地圖的時候可能會因為紋理過大而顯卡不支持出現問題,為了解決這個問題,我專門針對大尺寸紋理寫了一個ggeImage類,在內部把大紋理拆成一些小紋理,并實現自動管理和拼接,這樣多大的地圖也不怕了。

    接下來看看明暗效果和粒子效果吧,在《天之痕》里走到陰影下人物會變暗,走到窗戶旁會被照亮,這個在當時的游戲中是很少見的,加了明暗效果以后,人物跟場景結合在一起的感覺就更明顯了,而粒子特效可以試場景顯得更加真是生動。

   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

    然后是游戲中的關鍵字顯示,這個作為給玩家的提示還是很必要的,由于這個功能比較有用,所以我把這個功能做到了Galaxy2D引擎里,這樣在顯示關鍵字的時候直接在關鍵字前面加上一個標記就好了。

 

  

    最后是對話系統,算是RPG游戲中相對來說比較重要的系統了吧。

 

 

posted @ 2008-10-25 22:17 劍孤寒 閱讀(441) | 評論 (0)編輯 收藏

Galaxy2D Game Engine 2.3 下載

                 GUI演示                                                 MFC演示

  

 

             粒子編輯器                                             GUI布局器

 

版權聲明:
 
 1.
本軟件著作權歸沈明所有,保留所有權利。任何個人或團體可以免費使用引擎開發非商業用途的游戲和程序,可以修改和使用公開發布的源代碼,同時可以任意轉載復制本引擎,但必須保證復制的完整性。
 
 2.
未經本人授權禁止利用本引擎從事任何商業活動,包括利用引擎開發商業游戲,出版引擎的源代碼及其他相關資源。
 
 3. 不得對本游戲引擎進行反向工程、反向編譯或反匯編,不得對本引擎所含的代碼庫及附帶的工具程序作任何修改,破壞引擎的完整性。
 
 4. 本游戲引擎是免費軟件,對于由于使用本引擎引起的任何不良后果,用戶必須自己承擔風險,如果用戶使用本引擎用于任何非法目的,用戶必須獨立承擔由此帶來的法律責任。

 

引擎說明:

 Galaxy2D游戲引擎是一個基于D3D硬件加速的2D游戲引擎,主要特性有:
 
1.  支持高性能的圖形渲染及特殊效果(如:縮放、旋轉、透視、alpha混合等)
 2.  支持常用音頻格式(*.mid,*.wav,*.ogg),提供高效的并發播放等功能
 3.  支持常用圖片格式(*.bmp, *.png, *.jpg, *.tga, *.dds),支持alpha通道自動混合等
 4.  提供高性能的字體渲染模塊,支持中文等字體
 5.  提供擴展圖像模塊,可支持任意尺寸圖像
 6.  提供數據管理模塊,支持直接zip包的讀取
 7.  提供資源管理模塊,簡化游戲中的資源管理
 8.  提供高效的粒子系統,并有粒子編輯器
 9.  提供易用的GUI模塊,并有GUI布局器
 10. 支持多種格式的視頻文件播放
 
 運行環境:
 
Windows 98/2000/NT/ME/XP
 DirectX 9.0c
 
 聯系方式:
 
主頁地址: http://groups.google.com/group/jianguhan
 電子郵箱: jianguhan@126.com 

 

 

更新記錄:

2.3
修改粒子系統處理回調
ggeFsmManager添加函數ReturnLastState()

2.2
工具軟件做了一些小調整以便于使用
修改創建資源失敗內存泄露問題
常用擴展類添加Copy()和Clone()函數
修正VS2005兼容性問題
添加LuaClass模塊用以導出類到Lua腳本中
粒子系統添加ggeParProcessHandler,可操作單個粒子運動

2.1
紋理模塊增加鎖定渲染目標功能
紋理模塊增加丟失設備等情況時,自動保存和載入渲染目標紋理上的圖像
紋理模塊添加FillColor()函數用以填充紋理
添加Resource_AddPath()函數設置資源搜索路徑
增加Shader模塊,可用HLSL編寫Shader程序,高效快速的實現游戲中的某些特效
字體模塊添加SetCharSpace()函數用以設置字間距
字體模塊添加SetShadowMode()函數用以設置字體陰影
修正與MFC結合使用時,設備丟失不能重置的問題
視頻播放添加Video_Pause()和Video_GetPlayingTime()函數

 
2.0
交換鏈模塊添加SetValidRect函數以便更好的與MFC結合使用
游戲程序框架增加FSM類

 

1.22
添加一個游戲程序框架,簡化游戲開發過程
修改音效模塊播放代碼,提高多播性能
音效模塊添加Sound_PauseAll()/Sound_ResumeAll()/Lock()/UnLock()函數

 

1.21

修正LoadLayout函數不能從資源文件讀取布局文件的問題
ggeGUIInputBox添加Center函數
GUI管理器和控件添加Reset和SetColor函數
修改資源腳本的字符串定義,使其更便于使用
修正讀取空資源腳本出錯的問題

修改字體類緩存管理算法,提高渲染效率
ggeVector類添加Clamp函數
精靈類SetFlip函數添加hotSpot參數,指示是否翻轉參考點

1.20
添加GGE_TEXTURESIZE用以在系統啟動時檢測最小紋理尺寸是否滿足要求
字體類添加SaveState和ReloadState函數用以保存/重載字體狀態
GUI模塊添加ggeGUIWindow和ggeGUIImage控件
添加GUI布局器,以便于GUI控件布局

 

1.19
修正Graph_GetRenderTarget()取得渲染目標失敗錯誤
重寫音效模塊,提高音效并發播放效率
字體類添加SetLineWidth()函數設置行寬,當字符串總寬度超過該值時自動換行
字體類添加顏色腳本,可在字符串中可直接設置某段文字顯示顏色
重寫資源管理類的資源腳本


1.18
修正載入多個不同音樂文件時非法操作問題
修正檢測音樂文件是否播放失敗問題
取消消息監聽器,用消息處理函數取代
重寫粒子編輯器
添加
Input_IsMouseOver()函數,檢測鼠標是否在窗體上
添加Input_GetChar()函數,返回當前輸入的字符或字符串,支持中文輸入法
添加ggeGUIInputBox控件,支持中/英文輸入,支持全屏/窗口模式
添加ggeResManager類對資源進行管理

1.17
添加對配置信息(INI)文件的操作函數

1.16
字體類添加GetCharNum函數
ggeGUIManager添加無鼠標導航模式(GGEGUI_NONAVMOUSE)
紋理類支持dds壓縮紋理格式

1.15
修正ggeGUIButton控件紋理坐標設置錯誤
修改了GUI和動畫類中的中的Update函數
修改了ggeGUIButton對消息的響應方式,只有在控件范圍內釋放鼠標左鍵才認為在該區域按下鼠標

1.14
從Font類移除SetBufferSize,Font類內部自動調整緩沖區
添加Image類,支持任意尺寸圖像

1.13
修改了一些Input函數的函數名
添加GUI控件,增加ggeGUIListBox類

1.12
修正字體顯示位置誤差
Input_GetMousePos和Input_SetMousePos的參數修改為float型

1.11
修正有時設置窗口標題失敗問題
修正兩次執行Graph_BeginScene()函數時,畫圖失敗問題

1.10
重新設計引擎架構
重寫音頻播放模塊
采用動態補償技術重寫幀率控制模塊
修正粒子系統的一些小Bug
修正渲染交換鏈渲染圖形失敗問題

1.03
Font類添加ResetBufferSize函數
添加Input_GetKey函數
添加Input_IsMouseUp函數
添加Input_IsKeyUp函數

1.02
修改渲染模塊,提高了渲染效率
Font類添加SetCharNum函數

1.01
修正字體間距Bug
修正粒子移動Bug
修正設置渲染目標后畫面閃耀問題

posted @ 2008-10-25 21:58 劍孤寒 閱讀(601) | 評論 (0)編輯 收藏

僅列出標題
共8頁: 1 2 3 4 5 6 7 8 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美日韩亚洲一区三区| 久久精品国产一区二区三区| 欧美在线播放一区| 小黄鸭精品aⅴ导航网站入口| 日韩视频免费在线观看| 亚洲最新中文字幕| 午夜宅男欧美| 欧美不卡视频一区| 欧美日韩国产在线播放| 国产精品美女诱惑| 在线视频观看日韩| 99精品福利视频| 欧美一区综合| 亚洲高清久久久| 亚洲精品视频在线播放| 亚洲在线电影| 欧美777四色影视在线| 欧美视频一区二区三区四区| 国产一区二区久久精品| 日韩手机在线导航| 久久久久久穴| 99综合在线| 午夜精品久久久久久久久久久| 久久久人成影片一区二区三区| 欧美日韩精选| 亚洲国产高清自拍| 久久精品99国产精品日本| 亚洲人成免费| 久久综合九色综合久99| 国产精品视频yy9099| 亚洲精品之草原avav久久| 久久精品国产第一区二区三区最新章节 | 欧美91精品| 国产精品分类| 亚洲看片网站| 欧美大片专区| 欧美亚洲一区二区在线| 欧美日韩在线综合| 亚洲免费观看高清在线观看| 久久网站热最新地址| 亚洲欧美日韩视频一区| 欧美日韩午夜| 一区二区三区鲁丝不卡| 亚洲电影在线播放| 久久综合影音| 一区二区三区在线免费播放| 亚洲免费综合| 一区二区高清在线观看| 欧美日韩国产精品一区| 亚洲乱码国产乱码精品精天堂| 久久蜜桃香蕉精品一区二区三区| 亚洲视频在线免费观看| 欧美日韩精品一区视频| 日韩一二三区视频| 亚洲欧洲久久| 亚洲色在线视频| 欧美亚洲日本国产| 99热在这里有精品免费| 欧美r片在线| 亚洲国产精品一区二区第一页| 久久精品综合网| 欧美一区二区在线看| 国产性猛交xxxx免费看久久| 欧美一级免费视频| 欧美伊人久久大香线蕉综合69| 国产精品视频精品| 久久国产直播| 久久综合九色| 一本久久a久久免费精品不卡| 亚洲国产天堂久久国产91| 欧美成人午夜免费视在线看片| 亚洲人体影院| 夜夜爽www精品| 国产伪娘ts一区| 蜜月aⅴ免费一区二区三区| 久久免费一区| aa级大片欧美| 亚洲综合色网站| 在线观看国产精品淫| 亚洲国产一区二区精品专区| 欧美日韩国产首页| 午夜影院日韩| 久久久久女教师免费一区| 亚洲国产精品一区二区久| 日韩午夜在线电影| 国产一区二区久久久| 亚洲国产精品欧美一二99| 国产精品第13页| 免费不卡欧美自拍视频| 欧美日韩国产不卡| 欧美在线免费视频| 欧美高清视频一二三区| 午夜精品久久久久久久99热浪潮| 欧美一区二区三区视频免费播放| 亚洲日韩成人| 亚洲综合成人婷婷小说| 亚洲激情女人| 性色av一区二区三区红粉影视| 亚洲国产美女| 亚洲自拍都市欧美小说| 亚洲精品一区二区三区樱花| 先锋影音国产一区| 亚洲午夜极品| 欧美大片在线看| 久久久久久久波多野高潮日日| 欧美电影免费观看大全| 久久天堂成人| 国产欧美韩日| 一区二区欧美视频| 亚洲精品一区二区三区在线观看| 欧美一级在线播放| 亚洲欧美日本国产专区一区| 免费日韩精品中文字幕视频在线| 性8sex亚洲区入口| 欧美日韩亚洲视频| 欧美国产乱视频| 国产一区二区三区在线播放免费观看 | 国产尤物精品| 中国女人久久久| 夜夜爽夜夜爽精品视频| 久久躁日日躁aaaaxxxx| 久久成人综合视频| 国产精品热久久久久夜色精品三区| 亚洲国产精品va在看黑人| 1000部精品久久久久久久久| 欧美影院成年免费版| 久久成人精品视频| 国产精品一区二区久久久久| 在线中文字幕不卡| 亚洲网站在线| 欧美午夜免费电影| 洋洋av久久久久久久一区| 一本色道综合亚洲| 欧美日韩国产综合新一区| 亚洲人屁股眼子交8| 亚洲日本激情| 女主播福利一区| 欧美激情第8页| 亚洲精品视频啊美女在线直播| 免费毛片一区二区三区久久久| 欧美国产日韩一区二区| 亚洲欧洲在线观看| 欧美日韩成人网| av成人黄色| 欧美亚洲在线观看| 国产中文一区二区三区| 久久久成人精品| 欧美成人久久| 亚洲视频在线观看免费| 国产精品乱码久久久久久| 午夜精品在线视频| 免费日韩av片| 在线综合欧美| 国产区在线观看成人精品| 久久久久这里只有精品| 欧美成人激情在线| 一区电影在线观看| 国产精品一区视频网站| 久久久99精品免费观看不卡| 亚洲国产成人在线播放| 亚洲一区二区日本| 韩国成人理伦片免费播放| 欧美电影专区| 亚洲欧美久久久| 欧美成人午夜77777| 在线亚洲伦理| 好吊一区二区三区| 欧美精品九九99久久| 亚洲欧美999| 亚洲欧洲久久| 久久精品日产第一区二区三区| 亚洲国产色一区| 久久这里只有| 在线综合+亚洲+欧美中文字幕| 久久免费视频在线| 中文av字幕一区| 在线国产亚洲欧美| 国产精品日韩一区| 欧美国产视频日韩| 久久精品国产亚洲精品| 一本色道久久88综合日韩精品 | 一区二区三区精品| 在线观看免费视频综合| 国产精品久久久爽爽爽麻豆色哟哟| 欧美在线观看视频一区二区三区| 亚洲成色精品| 亚洲视频一区在线观看| 久久黄金**| 亚洲一区二区三区四区中文| 尤物精品在线| 国产亚洲精品高潮| 国产精品xxxxx| 欧美好骚综合网| 久久亚洲影院| 欧美在线免费观看| 午夜精品免费视频| 亚洲一区二区三区精品动漫| 亚洲人永久免费| 亚洲高清在线观看| 欧美aaa级|