摘要: 最新的OGF 0.8.1版,已修正上一版已知的BUG,并加入了更多的功能。另外,已在此版本的基礎上,開發了一個休閑游戲,已證明該框架的可行性,穩定性方面仍需后期的使用反饋才能能到確認。(記得以前提及會用一個游戲來逐步講解使用OGF開發游戲的過程,所以游戲的代碼可繼續關注我的BLOG,將會陸續放出)
閱讀全文
摘要: 試用過OGF的朋友,應該會發現GameFrame在鼠標消息處理時,都會搜索當前鼠標坐標下的對象,以實現對像的MouseMove,MouseOver, MouseIn, MouseOut四個事件,但效率非常之差?,F打算進行調整,以加快每幀的處理速度,大致方案如下:
1、按FLASH的模式,默認不提供對象的MouseMove, MouseOver, MouseIn, MouseOut事件,GameFrame只負責將MouseMove的消息轉發至GameBody,用戶要實現要上述4個事件,則必須重載GameBody的OnMouseMove來實現(GameBody可能會提供一個默認的對象分發過程,由用戶調用或GameFrame的Setting中帶一個標志開發以確定是否分發至對象);
2、在GameLayer層加入一個是否允許處理鼠標消息的標志(默認為false),當為否則不檢測,減少FindObject()函數的判斷次數;
3、在對象中增加一個是否允許處理鼠標消息的標志(默認為false),減少FindObject()函數中用對象區域判斷的次數;
<
閱讀全文
摘要: #89 La Mota, Medina del Campo
Valladolid, Spain
13th to 15th centuries
閱讀全文
摘要: 原本打算趕在9月上旬放出來的,但CSDN的博客老是出錯,于是當天就來申請CPPBLOG,今天就將近期更新后的版本放上來,希望大家繼續支持!
OGF 0.81 debug版代碼下載:
http://www.shnenglu.com/Files/lwq49/GameFrame%200.8.rar
閱讀全文
摘要: 本范例主要是介紹圖形對象及對象中新增的Region屬性.首先要說明圖形對象并不是用于繪制,而是圖形的封裝,一個圖形實例只對應一種圖形,若想創造復雜的圖形則只能通過多個單個圖形組合.范例運行后會在屏幕中顯示一幅帶有邊框的圖片,當按鍵盤的左/右鍵,圖片會逆/順時針旋轉,這時邊框會根據圖片的新區域重繪(將以圖片的最小X和Y點為左上角,以圖片當前的最大X和Y點為右下角).
閱讀全文
呵呵,差不多兩個星期沒有寫文章,想不到游覽次數已超過1000了。自從上次添加了網絡接口后,又回到去完善GameObject組件。主要解決了原有的某些BUG和添加了幾個窗口對象,但都并不是十分完善,只能說是實現了基本的功能和提供了一個發展思路,希望大家多提意見,把它繼續完善。
此次GameObject的BUG修改主要有:
1.GameObject增加了Region屬性,用于保存對象旋轉后新區域,修決以前HITTING比較旋轉后的對象的BUG
2.GameGroup控制下屬對象的調整會造成死循環的BUG
3.組對象內的對象坐標,大小調整后通知組對象更新屬性的BUG
4.GameObject增加了Clipping屬性,由對象自行擴展如何去實現掩碼層效果
5.GameObject添加了幾個坐標相關的函數
增加了新的對象:
1.GameObjectParticle,HGE精靈對象的封裝
2.GameObjectButton,BUTTON對象的封裝.可創建5種狀態(統一放在同一紋理內),分別為:普通,點擊,移入,禁止和禁止點擊.
3.GameObjectGraph,一個簡單的圖形對象,可實現線,方形,三角形和圓形的繪制,并相互轉換.
4.GameObjectSlider,一個滑動條控制類,可實現鍵盤,鼠標控制滑塊移動.
5.GameObjectEdit,一個簡單的輸入框,有邊框設置,接受鍵盤消息,可在字符串后追加字符和向前刪除.(暫沒有光標,原因是未實現對字符的定位)
最近的一些想法:
1.繼續補充一些實用的對象,例如:滾動條,單選/多選框
2.GameGroup,FrameObject增加一個緩沖設置,可將多個對象在更新后先生成紋理,渲染時只渲染該紋理.
3.增加掩碼層管理
接下來會以范例逐個說明新增的內容。
摘要: 網絡服務器的編寫相對客戶端的網絡應用較為復雜,既要實現單個客戶端的功能,也要實現其管理,包括應答,讀/寫數據的線程開啟/回收,多線之間的數據互斥等.(管理方面是采用了一個非開源項目的代碼,所以代碼暫不便公開,將以LIB方式提供大家使用.)為方便后臺服務的開發,因此采用了MFC框架.范例中代碼較為多不一一進行說明,只從大體上簡單介紹每個類的作,并針對網絡相關部分進行相關說明.
范例是實現一個消息管理服務.提供群發或定向發送文本消息至客戶端,并帶有服務啟動/關閉,日志記錄的功能.
閱讀全文
摘要: 最近幾天的閉關修練,終于把OGF的網絡部分給補充完了,這樣大家就方便開發自己的網絡游戲.網絡應用方面分為客戶端與服務器端,上集我們先介紹客戶端的使用,下集再介紹服務器端的的開發.
客戶端的消息分發采用原有的隊列調配模式,機制上與計時器或動作引擎沒有太大的差異,無非創建了一個空窗口與SOCKET進行綁定,然后將SOCKET消息發送隊列后再分發.除此之外,提供了簡單的數據加/解密的支持,提供了SOCKET代理模式的支持.
閱讀全文
摘要: 游戲開發其中一環就是非??菰锏馁Y源加載及布局,大多數大型游戲都會有編輯器,對自己的游戲中用到的層場進行可視化編輯,但創建這樣一個引擎對中小型游戲來說,反而是開發比例不對稱,所以OGF內置了場景布局器,方便中小型游戲方便地從XML文件中加載,而生成XML的界面編輯器也會優先開發出來,以簡化這方面排版的時間消耗.
布局器是一條處理鏈,鏈中可能有多個不同性質的布局處理器,例如:處理資源的,處理環節,場景,場的,還有是處理對象的等.用戶也可自行擴展XML的內容,但要求自己編寫布局處理器,然后注冊到系統中使用即可.
Sample07
簡介:布局器
該示例會以一個以前做過的游戲背景為基礎,顯示了如何按OGF.xml中的內容進行布局.
閱讀全文
摘要: 這個范例將會介紹OGF框架另一個擴展功能--物件動作引擎.作為一個游戲必然會涉及到一些對象動作,例如簡單的直線移動,旋轉,漸變等,高級的話,可能要做貝塞爾的曲線運動或作物理的慣性移動,物件動作引擎專門針對這些動作進行處理(隨著推廣和改進,相信會有你所需要的動作添加進來).看回一些新手寫的程序,總會將這些處理寫在渲染函數體內,控制物體位置的判斷:switch,if語句占了N多行代碼,為此想起寫這么一個引擎,將這些動作的處理更為簡單方便.例如你讓指定物件從A坐標移動至B坐標,OGF會自動在另一線程中幫你處理,你的代碼只需是告訴OGF要做什么動,目標是什么就可以了,具體看看下述的示例.
Sample06
簡介:對象動作.
本范例會示范一個隨機的直線運動.運行并點擊"Start"按鈕后,Sample05的時間計時器會隨機在屏幕上移動,直至程序關閉.
閱讀全文