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

劍孤寒的小站

人生的價值不是用時間,而是用深度去衡量的!
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 劍孤寒 閱讀(15685) | 評論 (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 劍孤寒 閱讀(6833) | 評論 (0)編輯 收藏

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

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

   

最后放上截圖一張^_^

 

 

 

 

 

 

 

 

 

 

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

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

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



 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

戰斗系統:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2008年3月15日

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

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

  

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

 

 

posted @ 2008-10-25 22:17 劍孤寒 閱讀(445) | 評論 (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 劍孤寒 閱讀(610) | 評論 (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>
            一本到高清视频免费精品| 国产精品99久久久久久人 | 欧美顶级大胆免费视频| 亚洲电影免费观看高清完整版在线观看 | 亚洲美女免费精品视频在线观看| 欧美激情亚洲激情| 欧美成人中文| 亚洲女女做受ⅹxx高潮| 欧美一级片一区| 亚洲电影在线播放| 亚洲开发第一视频在线播放| 欧美色另类天堂2015| 欧美在线电影| 免费日韩视频| 性欧美大战久久久久久久久| 久久久精品五月天| 一本色道久久综合狠狠躁篇怎么玩| 日韩亚洲欧美在线观看| 国产丝袜一区二区| 欧美大片一区二区三区| 欧美视频一区在线| 免费不卡亚洲欧美| 欧美韩日一区二区| 久久成人免费电影| 免费亚洲一区二区| 午夜欧美精品| 欧美成人一区二区三区| 欧美一区日本一区韩国一区| 久久综合伊人77777蜜臀| 一区二区三区免费在线观看| 亚洲欧美日韩精品| 亚洲精品日韩一| 欧美一级淫片aaaaaaa视频| 亚洲美女精品久久| 久久成人精品电影| 亚洲永久精品国产| 蜜臀av国产精品久久久久| 亚洲欧美另类国产| 欧美精品少妇一区二区三区| 麻豆精品精华液| 国产精品一区二区三区成人| 亚洲毛片在线看| 在线成人www免费观看视频| 亚洲视频一区| 一区二区三区四区五区在线| 久久久综合网站| 久久aⅴ国产欧美74aaa| 欧美色大人视频| 亚洲国产专区校园欧美| 在线日韩日本国产亚洲| 午夜精品久久久久久99热软件| 一本色道久久综合一区| 麻豆久久婷婷| 免费欧美高清视频| 激情久久影院| 久久精选视频| 老色鬼精品视频在线观看播放| 国产精品久久久久毛片大屁完整版| 亚洲欧洲日韩女同| 99国产成+人+综合+亚洲欧美| 免费观看日韩| 亚洲第一色在线| 亚洲欧洲美洲综合色网| 久热爱精品视频线路一| 久久综合久久综合九色| 狠狠色狠狠色综合系列| 久久先锋影音| 欧美寡妇偷汉性猛交| 亚洲黄一区二区| 欧美α欧美αv大片| 欧美国产视频日韩| 亚洲欧洲日产国产综合网| 欧美成人69av| 日韩亚洲成人av在线| 亚洲综合二区| 国产午夜精品福利| 久久不射中文字幕| 欧美激情第五页| av72成人在线| 国产乱子伦一区二区三区国色天香| 亚洲欧美大片| 久久综合久久综合久久综合| 在线视频成人| 欧美日韩一区二区三区视频| 亚洲综合成人婷婷小说| 久久伊人精品天天| 99精品福利视频| 国产精品久久久久免费a∨| 欧美在线免费看| 亚洲第一页自拍| 午夜性色一区二区三区免费视频| 国内成+人亚洲| 欧美1区2区| 亚洲一卡久久| 欧美成人精品不卡视频在线观看| 亚洲精品综合在线| 国产精品久久久久久久午夜| 久久亚洲精品一区| 一本久道久久综合中文字幕| 久久久7777| 正在播放亚洲一区| 黄色精品在线看| 欧美午夜在线观看| 久久精品视频免费播放| 99成人精品| 欧美成人一品| 久久av最新网址| av成人免费在线| 亚洲高清123| 国产片一区二区| 欧美日韩不卡一区| 久久亚洲色图| 香港久久久电影| 一区二区三区高清不卡| 欧美成人国产va精品日本一级| 亚洲香蕉在线观看| 亚洲高清三级视频| 国产精品网曝门| 欧美日韩亚洲综合在线| 久久免费黄色| 性视频1819p久久| 在线亚洲自拍| 亚洲免费观看高清完整版在线观看熊 | 久久深夜福利| 亚洲欧美亚洲| 99精品99| 日韩视频免费看| 亚洲三级影院| 亚洲国产成人在线播放| 美女视频黄 久久| 久久婷婷影院| 久久久精品午夜少妇| 亚洲欧美日韩国产综合| 亚洲午夜在线观看视频在线| 99在线热播精品免费99热| 亚洲激情成人| 91久久精品美女高潮| 亚洲国产精品精华液2区45| 国产一区二区三区高清播放| 国产精品一区二区三区免费观看| 国产精品高潮呻吟久久av无限| 欧美日韩精品三区| 欧美片第一页| 欧美日韩精品欧美日韩精品一| 欧美激情偷拍| 欧美日韩一级片在线观看| 欧美三级第一页| 国产精品区免费视频| 国产噜噜噜噜噜久久久久久久久 | 国产精品欧美一区二区三区奶水 | 欧美精品一二三| 欧美紧缚bdsm在线视频| 欧美日韩国产999| 欧美日韩在线播放| 国产精品高潮视频| 国产精品揄拍500视频| 国产亚洲精品综合一区91| 国产视频一区免费看| 禁断一区二区三区在线| 亚洲国产高清一区二区三区| 亚洲精品国产精品国自产在线 | 久久久噜噜噜久久人人看| 久久天堂成人| 亚洲第一综合天堂另类专| 亚洲美女91| 西瓜成人精品人成网站| 久久久久综合| 欧美日韩mv| 国产欧美日韩亚洲一区二区三区| 韩国三级在线一区| 亚洲精品乱码久久久久久久久 | 国产一区91| 亚洲精品三级| 性欧美激情精品| 亚洲福利视频三区| 亚洲一区二区三区免费观看| 欧美制服丝袜第一页| 欧美不卡三区| 国产亚洲人成a一在线v站 | 日韩视频―中文字幕| 欧美亚洲在线观看| 欧美gay视频| 亚洲欧美一区二区三区极速播放| 久久电影一区| 欧美系列一区| 亚洲精品视频在线观看免费| 午夜久久久久| 亚洲经典在线看| 久久久久久网站| 国产精品视频九色porn| 亚洲精品在线观看视频| 久久爱www.| av成人免费在线观看| 免费欧美电影| 韩国三级在线一区| 亚洲男人的天堂在线aⅴ视频| 亚洲第一黄网| 久久久国际精品| 国产日韩三区| 欧美一二区视频|