摘要: 网络服务器的编写相对客户端的网络应用较为复杂,既要实现单个客户端的功能,也要实现其管理,包括应答,读/写数据的线程开启/回收,多线之间的数据互斥等.(管理方面是采用了一个非开源项目的代码,所以代码暂不便公开,将以LIB方式提供大家使用.)为方便后台服务的开发,因此采用了MFC框架.范例中代码较为多不一一进行说明,只从大体上简单介绍每个类的作,并针对网络相关部分进行相关说明.
范例是实现一个消息管理服务.提供群发或定向发送文本消息至客户端,并带有服务启动/关闭,日志记录的功能.
阅读全文
摘要: 最近几天的闭关修练,终于把OGF的网络部分给补充完了,这样大家就方便开发自己的网络游戏.网络应用方面分为客户端与服务器端,上集我们先介绍客户端的使用,下集再介绍服务器端的的开发.
客户端的消息分发采用原有的队列调配模式,机制上与计时器或动作引擎没有太大的差异,无非创建了一个空窗口与SOCKET进行绑定,然后将SOCKET消息发送队列后再分发.除此之外,提供了简单的数据加/解密的支持,提供了SOCKET代理模式的支持.
阅读全文
摘要: 游戏开发其中一环就是非常枯燥的资源加载及布局,大多数大型游戏都会有编辑器,对自己的游戏中用到的层场进行可视化编辑,但创建这样一个引擎对中小型游戏来说,反而是开发比例不对称,所以OGF内置了场景布局器,方便中小型游戏方便地从XML文件中加载,而生成XML的界面编辑器也会优先开发出来,以简化这方面排版的时间消耗.
布局器是一条处理链,链中可能有多个不同性质的布局处理器,例如:处理资源的,处理环节,场景,场的,还有是处理对象的等.用户也可自行扩展XML的内容,但要求自己编写布局处理器,然后注册到系统中使用即可.
Sample07
简介:布局器
该示例会以一个以前做过的游戏背景为基础,显示了如何按OGF.xml中的内容进行布局.
阅读全文
摘要: 这个范例将会介绍OGF框架另一个扩展功能--物件动作引擎.作为一个游戏必然会涉及到一些对象动作,例如简单的直线移动,旋转,渐变等,高级的话,可能要做贝塞尔的曲线运动或作物理的惯性移动,物件动作引擎专门针对这些动作进行处理(随着推广和改进,相信会有你所需要的动作添加进来).看回一些新手写的程序,总会将这些处理写在渲染函数体内,控制物体位置的判断:switch,if语句占了N多行代码,为此想起写这么一个引擎,将这些动作的处理更为简单方便.例如你让指定物件从A坐标移动至B坐标,OGF会自动在另一线程中帮你处理,你的代码只需是告诉OGF要做什么动,目标是什么就可以了,具体看看下述的示例.
Sample06
简介:对象动作.
本范例会示范一个随机的直线运动.运行并点击"Start"按钮后,Sample05的时间计时器会随机在屏幕上移动,直至程序关闭.
阅读全文
摘要: 游戏中离不开计时器,多多少少需要定时处理某些事情,例如:倒计时,进度条,AI控制等.OGF框架内置了一个计时器系统,提供了一个独立线程去处理这些任务,间隔最少可达到5毫秒.
Sample05
简介:计时器.
该范例运行后会先显示"Start"按钮,点击后会在屏幕中心显示一个秒数计数器,每秒递增1,一直至程序结束为至.
阅读全文
摘要: 我对游戏开发的看法是要尽量将游戏细化,最基本的是将游戏划分为多个环节,每个环节尽可能独立处理本环节的事情,所以於生出“CGameSection”这个类模板。在OGF中,当处于某一环节内,其它环节是不会收到任何消息的并且其内的物件也不会渲染,这使环节变得相对地独立。
Sample04
简介:游戏环节
使用游戏环节对游戏进行分阶段管理.使用环节控制可以将整个游戏流程划分为多个环节,例如:SFLASH窗口环节,菜单环节,游戏环节,结束环节等,具体视游戏大小而定.在此例中,会创建两个环节:CMenuSection, CMainSection,开始时会停留在MenuSection阶段,有一个"Start"文本,当点击后会转换至CMainSection环节,并实现Sample03的效果.
阅读全文
摘要: Sample03
简介:
键盘,鼠标事件的演示。
键盘、鼠标是游戏中主要的输入设备,往往会要求获取当前鼠标对象、鼠标坐标等。该例展示了OGF框架的事件处理机制,并介绍如何运用。
阅读全文
摘要: 该例子非常简单,也曾考虑过是否有必要作为例子,但作为OGF介绍的一部分,最终还是写上了。
Sample02
简介:
系统属性设置
目的是修改游戏框架的系统属性.在基于Sample01范例的基础上,我们来看看在您的游戏项目中如何调整框架的属性,例如:运行窗口的标题,每秒帧数....由于框架属性必须在游戏运行前设置完毕,所以我们要重载在框架运行前调用的GameInit()事件,在该事件内就可以设置框架提供的属性接口.
阅读全文
摘要: 游戏框架的示例,我确实不知如何写才能引人入胜,因为它实在是一些框框条条的东西,并不像图形引擎哪样注重效果的表现,所以,希望读者能耐心地看完所有示例介绍,望能从中找到你需要的功能。
注:以下每个示例均基于上一示例基础上修改,为此,相同部分不再重复。
Sample01
简介:
Hello World!
该例范展示了OGF框架的最基本架构及如何基于OGF创建你的游戏项目,运行后会在屏幕中心显示一段经典的"Hello World!"字样。
阅读全文
摘要: 期待已久的LEGO智能风暴系列,终于得偿所愿入手了。早在05年的时候就看上了旧的RCX套装,当时2,000大洋,未能狠心买下,今天终于用上了32位的NXT,看来还是值得的。
回来后,足足花了一个半小时(大部分时间是在找零件)按说明书上的范例,搭起了第一台三轮车。由于8527没有配电池,只能出去家乐福买了6个充电池和充电器,又忍受了8小时的充电。终于第二天按范例写了一个使距离探测器的程序(虽然运行不太正常)并下载运行测试。
阅读全文