摘要: 最新的OGF 0.8.1版,已修正上一版已知的BUG,并加入了更多的功能。另外,已在此版本的基础上,开发了一个休闲游戏,已证明该框架的可行性,稳定性方面仍需后期的使用反馈才能能到确认。(记得以前提及会用一个游戏来逐步讲解使用OGF开发游戏的过程,所以游戏的代码可继续关注我的BLOG,将会陆续放出)
阅读全文
摘要: 试用过OGF的朋友,应该会发现GameFrame在鼠标消息处理时,都会搜索当前鼠标坐标下的对象,以实现对像的MouseMove,MouseOver, MouseIn, MouseOut四个事件,但效率非常之差。现打算进行调整,以加快每帧的处理速度,大致方案如下:
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.cppblog.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代理模式的支持.
阅读全文
摘要: 游戏开发其中一环就是非常枯燥的资源加载及布局,大多数大型游戏都会有编辑器,对自己的游戏中用到的层场进行可视化编辑,但创建这样一个引擎对中小型游戏来说,反而是开发比例不对称,所以OGF内置了场景布局器,方便中小型游戏方便地从XML文件中加载,而生成XML的界面编辑器也会优先开发出来,以简化这方面排版的时间消耗.
布局器是一条处理链,链中可能有多个不同性质的布局处理器,例如:处理资源的,处理环节,场景,场的,还有是处理对象的等.用户也可自行扩展XML的内容,但要求自己编写布局处理器,然后注册到系统中使用即可.
Sample07
简介:布局器
该示例会以一个以前做过的游戏背景为基础,显示了如何按OGF.xml中的内容进行布局.
阅读全文
摘要: 这个范例将会介绍OGF框架另一个扩展功能--物件动作引擎.作为一个游戏必然会涉及到一些对象动作,例如简单的直线移动,旋转,渐变等,高级的话,可能要做贝塞尔的曲线运动或作物理的惯性移动,物件动作引擎专门针对这些动作进行处理(随着推广和改进,相信会有你所需要的动作添加进来).看回一些新手写的程序,总会将这些处理写在渲染函数体内,控制物体位置的判断:switch,if语句占了N多行代码,为此想起写这么一个引擎,将这些动作的处理更为简单方便.例如你让指定物件从A坐标移动至B坐标,OGF会自动在另一线程中帮你处理,你的代码只需是告诉OGF要做什么动,目标是什么就可以了,具体看看下述的示例.
Sample06
简介:对象动作.
本范例会示范一个随机的直线运动.运行并点击"Start"按钮后,Sample05的时间计时器会随机在屏幕上移动,直至程序关闭.
阅读全文