- 博客(17)
- 收藏
- 关注

原创 从零开始做3D地图编辑器(一)(基于QT与OGRE)
第一章 基础知识注:文章里面有不少个人见解,欢迎大家一起互相讨论。希望高人能给予相应理解与意见建议。在实际3D游戏开发中,编辑器是极其重要的一个部分,一个优秀健壮的编辑器,可以使项目事半功倍,而相反,一款BUG超多(随时会挂)又不注重操作习惯(完全基于快捷键,又没有详细的使用说明)的编辑器,不仅会使项目事倍功半,而且会削弱开发人员的积极性,甚至让开发人员对项目产生排斥情绪。编辑
2010-05-17 12:44:00
4859
4
原创 从零开始做3D地图编辑器(十三)(基于QT与OGRE)
下面是EntityViewWidget的实现:EntityViewWidget::EntityViewWidget(QWidget *parent) :QWidget(parent),m_pCurrGroupItem(0),m_nGroupCount(0),m_pCurrEntityItem(0){ m_pAddGroup = new
2010-05-21 15:34:00
4981
7
原创 从零开始做3D地图编辑器(十二)(基于QT与OGRE)
六、实体管理(QTreeWidget、QFileDialog) 这一节的内容相对来说比较多,但是依然是很简单,只不过因为我们要求的操作比较多,制作起来比较麻烦一点而已。最后成品如下图: 在开始之前先把实体管理的XML表确定下来。暂时定了以下结构:
2010-05-20 14:49:00
5301
原创 从零开始做3D地图编辑器(十一)(基于QT与OGRE)
五、日志栏与DockWidget QDockWidget是QT中一个使用方便但又实用的控件,稍微大一点的项目都会使用它,只需要简简单单几句话就可以做出很酷的效果,为什么不用?而且我相信只要你使用过一次就会对它爱不释手。 在基本需求里,我们提出日志栏必须能够自由拖动,而且可以嵌入窗体,所以日志栏就得使用了一个QDockWidget,功能控件这一块很简单,只是不
2010-05-20 14:14:00
4895
原创 从零开始做3D地图编辑器(十)(基于QT与OGRE)
四、QT资源系统 上一节中QAction设置图标时使用了QIcon,当时用的是QIcon (":/images/new.png")来申请一个QIcone,里面有一个路径,实际上这个路径并不是系统路径,而是通过Qrc来管理的路径。QT的资源管理系统是一个跨平台的用来存储应用程序执行时所需的二进制资源,它用QRC(QT Resource Collection)文件来管理,QRC
2010-05-20 11:27:00
4396
原创 从零开始做3D地图编辑器(九)(基于QT与OGRE)
三、窗体、菜单栏、工具栏、状态栏A、创建窗体 我还是按照QT基础那节的内容创建一个窗体类,不同的是这个窗体类现在继承于QMainWindow,它会使得封装中央部件、菜单条和工具条以及窗口状态变得更容易。接下去,设置标题和窗口大小:setWindowTitle("Editor"); //设置窗口标题 resize( WINDOW_W
2010-05-19 16:42:00
5153
1
原创 从零开始做3D地图编辑器(八)(基于QT与OGRE)
二、基本框架布局 根据上一节的一些基本需求,做出一个简单的布局如下图: 窗体大小:1024*768,太大了有点显示器放不下!支持最大化,最小化,关闭按钮,支持手动拖大拖小。拥有菜单项(支持快捷键,图标):File : New, Open, Save, Save As, ExitEdit: Undo, Redo,Copy, Paste(这个功能暂时保留)
2010-05-19 13:40:00
3231
原创 从零开始做3D地图编辑器(七)(基于QT与OGRE)
第二章 编辑器的基本框架一、几个问题 前面说了很多编辑器之外的东西,真正要动手做编辑器了,也不能一股脑地就开始了,这之前必须要问自己几个问题:1、这个地图编辑器有什么基本功能?2、导入导出文件格式? A、3D地图编辑器的基本功能正如开篇所说,编辑器制作有两种趋势,其中一种是大而全的世界编辑器,这种方式可以带给极大的成就感,正合很多新人的意,但是我觉得一开
2010-05-19 12:25:00
3193
原创 从零开始做3D地图编辑器(六)(基于QT与OGRE)
五、OGRE基础知识友善提醒:如果你对OGRE比较了解,请自觉跳过此节。本节并不打算提供详细的入门教程,只是对OGRE的简单介绍,如果需要OGRE的详细资料,请自行使用网络功能。1、OGRE是什么 Ogre是一款开源的图形渲染引擎,它的全名叫(Object-oriented Graphics Rendering Engine),目前在开源图形渲染引擎这一块排名第一,
2010-05-19 11:16:00
2946
原创 从零开始做3D地图编辑器(五)(基于QT与OGRE)
第一步,先把window封装起来,我新建一个MainWidget类,继承自QWidget类,类的头文件如下:#ifndef _MAIN_WIDGET_H_#define _MAIN_WIDGET_H_#include #include #include #include class MainWidget: public QWidget{
2010-05-18 17:17:00
3029
原创 从零开始做3D地图编辑器(四)(基于QT与OGRE)
四、QT基本知识回到QT,先在VS中新建一个QT Application,项目里面有几个目录:1、 Form Files目录,它里面放的是使用QT designer制作的基于XML的布局文件,双击它就会自动进入QT designer。2、 Generated Files目录,它里面放的是一些临时生成的文件,这些文件用来处理QT的信号和
2010-05-18 12:21:00
3984
2
原创 从零开始做3D地图编辑器(三)(基于QT与OGRE)
三、开始之前的配置我看到过很多同志在做项目时,直接新建项目后立马就直接开始编程,使用的是VS默认目录,结果在Debug的时候老是找不到dll,找不到资源,然后又花了一堆的时间去查找问题,白白地浪费了不少时间,更有甚者就在此时便失去了继续向下的动力,觉得这个东西太难理解了(一遇挫折就跑)。所以我觉得在每次开始项目前都应该好好地把解决方案配置一下。我做项目的时候喜欢这种方式,项目目录下面存在以
2010-05-17 17:33:00
3501
1
原创 从零开始做3D地图编辑器(二)(基于QT与OGRE)
二、工具安装指南1、OGRE下载与编译OGRE官方网站:http://www.ogre3d.org下载最高版本的OGRE(1.7.1),有两种方式:第一种方式是直接下载SDK,下载的SDK可以直接使用,但是由于编译环境不同,可能会缺少一些DX的DLL,你得在网络下另外下载缺少的DLL,下载方法是从网站左侧的DownLoad里面选择SDK,然后选择相应VS的版本,我们推荐使用VS20
2010-05-17 15:35:00
3628
1
翻译 第四章 碰撞响应
你现在知道如何根据一个已知速度矢量去检测是否与你的世界中任意一个三角面之间的碰撞了。但是碰撞发生后我们要做什么?最简单的方法是碰撞发生时,让他停止不再前进。但这并不是专业的做法,我们理想的碰撞响应应该是沿着墙体滑动、自动爬梯子和自动撞击地表上小的障碍物。很幸运的是我将告诉你如何自动地实现滑动。你理解的滑动是什么呢?我们在这里想做的是当物体移动到起冲突的一个世界三角面附近时,会自动改变移动方向并
2010-04-30 10:36:00
2396
1
原创 (老文章)Box2D新手入门顺阶教程
注意: 本教程只适用于BOX2D 2.0以下版本,由于2.0版API的改动,所以有部分代码会并不适用.但是主要思想还是一样的. 一、 HelloWorld 开始之前,我假想你已经看过了HelloWorld的源代码,并看了用户手册中关于HelloWorld的相关说明,而且已经大致明白了大多数内容。 其实HelloWorld已经用极其简单的语言向你描述了Box2D物理引擎的运作机制,我们可以归纳一下
2010-04-30 10:20:00
14492
原创 交流:如何完全脱离obj-c使用iphone的多点触摸功能
说实话,在接触iphone开发以来,一直都不太喜欢obj-c的风格,所以我的引擎中几乎所有的代码都是脱离obj-c的,但是iphone平台中的一些特色我们一定要使用,不然也太对不起iphone了,其中有一项很重要的功能就是多点触摸,一般在游戏开发中有两种方式处理iphone的多点触摸功能,第一种是回调方式,即把事件一层层回调到我们需要的地方去,然后响应相应的操作,第二种是存储方式,即把事件的数据记
2010-04-30 10:06:00
1162
原创 简单修改Texture2D以支持从压缩包读取贴图
在iphone开发游戏中,有时候为了方便管理和保护资源我们使用了zip或自定义压缩文件,一般我们从压缩文件中取出来的都是一个void*数据和数据大小,当然我们想利用这些东西来读取贴图,可惜的是opengl本身并不提供相关的API支持,而Texture2D只提供功能函数- (id) initWithData:(const void*)data pixelFormat:(Texture2DPixelF
2010-04-30 09:58:00
3332
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人