- 博客(119)
- 资源 (26)
- 收藏
- 关注
原创 cocos2d-x-v3安卓平台tinyxml2读取xml出错
std::string filePath = FileUtils::getInstance()->fullPathForFilename(fileName);XMLDocument *pDoc = new XMLDocument();XMLError errorId = pDoc->LoadFile(filePath.c_str());log("errorId %d", error
2015-11-16 18:29:18 1392
原创 cocos2d-x3.0实现2048游戏
在空闲的时候实现了很火的游戏:2048。相信大家都玩过这款游戏。我这里贴出我的实现代码供大家参考。一共三个类:NumPanel: 面板类NumSprite: 方块精灵类NumUtil: 数字工具类文件下载运行如图:
2014-07-09 21:39:58 1509
原创 cocos2d-x 颜色混合
在游戏开发中,如果我们需要实现闪光的灯,照明弹效果等等,我么你可以采用混合模式来实现。如果学习过OpenGL(ES),就知道里面使用glBlendFunc函数实现的。在cocos2d-x里肯定也有,对于精灵,可以使用mySprite->setBlendFunc()来现。什么是颜色混合?简单来说就是将RGBA中的A,经行操作处理。具体一点,就是把某一像素位置原来的颜色和将要画上去
2013-04-10 10:49:57 12547
原创 cocos2d-x 自定义Touch事件处理类
对Touch事件的获取与处理可以使用CCLayer, CCMenuItem等,但是如果我们需要一个虚拟按键或者需要对特定精灵进行拖动等等,我们就需要自定义Touch类。 自定义Touch事件处理类重要的步骤是:1. 继承CCTargetedTouchDelegate2. 添加addTargetedDelegate(pDelegate, nPriority, bSwallowsTou
2013-04-09 14:41:01 4337 1
原创 opencv qt 配置环境(windows)
将opencv2.4.4的mingw库加载到qt (5.0.1)时,发现能够通过静态编译,但运行时会异常。排除其他原因后想到可能是源码的mingw32-make的版本不同造成的。所以用自己qt里的mingw再次进行了编译,这才使得能够在qt creator中正常使用了。可以参照官方文档使用CMake编译源码。由于每次编译会比较慢,这里 这里 这里我提供了我的编译好的文件供大家使用。将源码编
2013-04-04 19:07:40 1422
原创 Box2D Breakout游戏(cocos2d-x2.1)
本篇博客的例子来自:RAYWENDERLICH Breakout砖块游戏我根据它上面的Obj-C代码进行移植成cocos2d-x2.1的代码,稍有修改。可以在这里下载,供新手学习参考,代码粗糙,如有错误欢迎批评指正:)效果图如下:
2013-03-11 13:18:38 1509
原创 box2d弹球 cocos2d-x重力感应(cocos2d-x2.1)
本博客例子参考:raywenderlich我将上面obj-c的翻译成了C++,改动很少。首先在win32下新建新工程修改HelloWorldScene.h#ifndef __HELLOWORLD_SCENE_H__#define __HELLOWORLD_SCENE_H__#include "cocos2d.h"#include "Box2D/Box2D.h"clas
2013-03-10 18:40:29 5627 3
原创 cocos2d-x GUI控件的使用(cocos2d-x2.1)
在使用extensions时都需要额外指定include、lib,例如笔者的VS11环境,右键项目 属性-->配置属性-->VC++目录在包含目录中添加F:\cocos2d-2.1beta3-x-2.1.1\extensions;以及在链接器-->命令行添加libextensions.lib或者使用代码添加#pragma comment(lib, "libextensions.lib")
2013-03-06 17:38:09 7973
原创 cocos2d-x按钮菜单(cocos2d-x2.1)
首先看看程序运行时:程序中有四种菜单项按钮:文本菜单项(stop walk),图字菜单项(Hide Bear),Toggle菜单项(Go Right)以及图片菜单(程序开关)。为了有直观的显示,本程序在上一篇博客(动画制作)基础上修改。cocos2d-x的菜单CCMenu的创建有几个步骤1. 创建菜单项(CCMenuItem),并设置位置、点击回调函数。CCMenu
2013-03-06 16:51:33 4552
原创 cocos2d-x动画制作(cocos2d-x2.1)
本博客参考资料:http://www.raywenderlich.com/1271/how-to-use-animations-and-sprite-sheets-in-cocos2d预备用到的图片下载TexturePacker是资源打包器,将资源打包,一起载入到游戏既方便又可以提升性能。将下载好的图片解压缩,然后拖入到TexturePackerGUI的右边Sprites窗
2013-02-28 14:12:17 3515
原创 Qt Rich Text Example 看看看~
帮助文档中有四个Rich Text的例子:Calendar, Order Form, Syntax High Lighter, Text Object。本博客展示前两个。Calendar这个例子很简单,MainWindow类里添加一个QTextBrowser私有对象,并将此对象默认关联的QTextCursor对象进行编辑。添加Table和Frame。本例中使用到了QD
2013-02-16 00:12:32 7209
原创 Rich Text Processing富文本处理
Scribe框架提供一系列读和控制富文本文档的类。Qt4提供像QTextDocument类,他能够为开发提供创建和修改结构的富文本文档。文档内的信息通过两个补充的接口存取:1. 基于光标的接口用来编辑。2. 可读的分层接口它提供文档结构的高层次预览。使用前者的优点是他可以使用操纵符编辑,提供了一个很好的用户交互接口,不会损失潜在的文档结构。而后者的接口在查询和文档展示时最有用。
2013-02-13 14:11:36 12181 1
原创 Qt SVG Viewer Example 看看看~
Qt提供在widgets和其他paint device上渲染和展示SVG的类,本例就允许用户载入SVG文件并在QGraphicsView上用QGraphicsSvgItem显示它。并且例子还可以选择渲染者,QGraphicsView可以用QWidget或QGLWidget作为视口。也可以使用第三方渲染模型通过QImage。 程序运行如图:renderer可以选择:Native,Open
2013-02-10 18:56:55 9511 4
原创 Qt Graphics View Framework 图形视图框架
QT的2D绘图我们使用QPainter实现少量绘图是很理想的,但是如果是要绘制大量的2D图形并且需要能够控制管理时就会显得力不从心。好在QT视图体系提供了QGraphics View Framework的框架。使用这个框架可以将各图形项进行单独或分组的控制管理。 它包含三个大类:QGraphicsItem 项类(或者叫做图元类),QGraphicsScene 场景类,和 QGraphi
2013-02-10 17:52:18 10068
原创 Qt SVG Generator Example 看看看~
首先看程序运行后的效果:可以改变shape,Color,Background,点击Save As将图片保存成SVG格式文件到任意位置。该例子包括了两个主要的类:Window和DisplayWidgetWindow类包含了一个Qt Designer UI,用它来开发了主界面的UI,布局,信号槽以及绑定关系。UI文件里头displayWidget是来自QWi
2013-02-09 15:22:08 4556 1
原创 Qt SVG module
SVG(scalable vector graphics可缩放矢量图形)是基于可拓展标记语言(XML),用于描述二维矢量图形的一种图形格式。由W3C制定。是一种和图像分辨率无关的矢量图形格式。它与其他的图像格式相比优势在于:可以通过文本编辑器创建修改;可以被搜索、索引、脚本化或压缩;可伸缩;可以被任何分辨率下高清晰打印;可在图像质量不下降的情况下被放大。使用QT SVG模块需要在.pro文
2013-02-09 15:17:11 16520 3
原创 Box2D 初识
本博文是笔者的学习笔记,学习资料来自Box2D_v2.2.1帮助文档。 Box2D是一个为游戏设计的2d刚体仿真库。程序员可以在他们的游戏里使用它,它可以使物体的运动更加可信,让世界看起来更具交互性。从游戏的视角来看,物理引擎就是一个程序性动画(procedural animation)的系统,而不是由动画师去移动你的物体。Box2D 是用可移植的 C++ 来写成的。引擎中定
2013-02-01 17:59:57 5290
原创 Qt Border Layout Example 看看看~
Border Layout 例子将展示如何创建自定义布局管理器。Border Layout是通过设置自定义的West, North, South, East, Center的方位来设置布局。通过上一篇博客已经有过一个例子简单介绍了如何自定义布局管理器。通过本例子可以学到跟多的细节。int main(int argc, char *argv[]){ QApplication
2013-01-26 18:09:17 4424
原创 Qt 布局管理器
关于布局管理器,它是Qt提供的自动安排子部件位置的东西,布局管理可以为我们节省很多对位置的调节工作。基本的布局管理器有四种:Horizontal, Vertical, Grid, 和Form 布局管理器。这些在前面的例子都能看到是如何使用的。Qt的帮助文档里也有一个专门讲他们的例子:Basic Layouts。 QHBoxLayout, QVBoxLayout, QGridLayout,和
2013-01-26 16:14:32 9723 1
原创 Qt Drag and Drop Puzzle Example 看看看~
这个例子展示使用拖放的API来完成一个拼图的解密游戏。如图,将左边的拼图块拖放到右边,并完成恢复原图的样子即完成了游戏。例子中用到了一个QSizePolicy的类,它是用来描述横向和纵向大小策略的布局属性的。setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed));它会影响窗体的布局
2013-01-25 17:48:10 5726
原创 Qt Tab Dialog Example 看看看~
Tab Dialog例子展示怎么使用QTabWidget构造一个标签对话框。本例由一个TabDialog类组成,它提供了三个标签栏,每一个都包含了有关打开文件的信息,还提供了两个标准按钮,用于accept和reject对话框的内容。QTabWidget类提供一个栈型的标签组件。它提供一个QTabBar和一个“页区域(page area)”它用来展示每页中相关的标签。
2013-01-25 02:15:26 8573 5
原创 Qt License Wizard Example 看看看~
Class Wizard Example中是讲的线性结构的向导,License Wizard Example是复杂结构向导的一个简单例子。 例子由下面两部分组成:1. LicenseWizard,它继承自QWizard,实现了一个非线性结构的5页向导。向导指导用户通过选择许可协议的程序。2. IntroPage,EvaluatePage,RegisterPage,Details
2013-01-25 00:33:11 4012
原创 Qt Class Wizard Example 看看看~
本例展示怎么用QWizard实现线性向导。例子通过向导为我们在指定目录地点生成了c++代码。大多数的向导都是线性结构的,一页跟着一页,直到最后一页。一些向导也可能更复杂,以致根据用户输入的信息提供不同的漫游路径。之后有一个License Wizard的例子展示了这样的向导。类向导例子由下面的类组成:1. Class Wizard,继承自QWizard
2013-01-24 18:33:10 8301
原创 Qt Pixelator Example 看看看~
Pixelator也是个自定义委托的例子,这是个挺有意思的例子,好好看看!这个例子展示了怎么用自定义委托去修改标准视图外观。为了完成这个任务,我们需要实现下面的组件。1. 一个在图片做为数据项的情况下表示每个像素的模型,在这模型里,每个项都包含一个亮度值一致的像素。2. 一个自定义委托,它使用被模型提供的信息去表示每个作为白底黑圆的像素,这些圆的半径和它像素点的黑度一致。意
2013-01-24 01:09:45 2101
原创 QT Spin Box Delegate Example 看看看~
Spin Box Delegate 展示了怎么为自定义的委托创建一个编辑器。委托用来渲染和编辑视图中不同项的,一般多数情况下我们用视图中的默认委托就够了,如果想要更好的控制有关的项显示,通常需要我们可以自定义模型:在data()重新实现中,我们可以处理Qt::FontRole,Qt::TextAlignmentRole,Qt::TextColorRole和Qt::B
2013-01-23 18:06:07 5218 1
原创 Qt 模型视图编程基础 model/view programming
QT4介绍了一系列项视图(item view)类,它提供了一个模型视图(model/view)结构来管理数据和呈现用户的关系。对于小部分情况,我们不需要动用模型,只通过项视图类就可以完成工作(QListWidget,QTableWidget,QTreeWidget)。例如使用QTableWidget,它其中包含QTableWidgetItem等,可以完成少量数据及操作。但是
2013-01-23 15:53:25 5753
原创 QT System Tray Icon Example 看看看~
System Tray Icon Example展示了怎么样用菜单和弹出消息添加一个图标到桌面环境的系统托盘。现代操作系统通常在桌面提供一个特别的区域,称为系统托盘或通知区域。在这里长时间运行的应用可以展示图标和短信息。 本例子只有一个类:Window,提供应用程序窗口和关联的图标。那个编辑器允许用户选择喜欢的图标和设置冒泡信息类型。用户也可以编辑信息的标题和内容。最后,这
2013-01-23 02:26:51 7109
原创 QT Screenshot Example 看看看
Screenshot Example展示了怎么用QApplication和QDesktopWidget获取桌面的截屏。它也展示了怎么用QTimer提供一个单发时间(single-shot timer)、怎么样为了确保应用程序没有数据丢失地调整大小而重新实现QWidget::resizeEvent()事件处理器。通过程序,使用者可以获取自己桌面的截图。其中有两个设置:1. 延迟截屏时间,
2013-01-23 02:24:25 2967
原创 QT Draggable Text Example 看看看~
Draggable Text例子展示了怎么样拖放文本数据。本例程序可拖动放置单个Label控件到本程序任意位置。也可以将各个控件拖到其他应用程序中(如office软件),将显示label上的单词,也可以将其他应用程序中文本拖放到其中,他将拆分并显示为一个个单词的label。项目文件有两个主要类:DragLabel DragWidget先看main.cpp:
2013-01-21 00:28:28 1987
原创 Qt Draggable Icons Example 看看看~
Draggable Icons Example例子展示了在同一个应用程序的窗体部件之间如何拖放图像数据。(关于一些拖放的基本知识在我上一篇博客有介绍。)例子程序功能是这样的,当我们在一个自定义widget(图中两个相同大小的框框就是自定义的widget)内拖动一个图片,会将图片位置改变。当我们将一个自顶一个widget中的图片拖动放置到另外一个中时,将会复制图到另外一边。
2013-01-20 18:51:14 2330
原创 Qt拖放 drag and drop
拖放提供一个应用程序之间传递信息的一种简单的可视化机制。拖放机制类似于剪切和粘贴机制。拖放操作同时被QT项目视图和图形视图框架支持。QApplication提供了两个拖放相关的方法:1. QApplication::startDragTime。它描述了用户按下鼠标多长时间开始拖放操作。2. QApplication::startDragDistance。它描述了用户
2013-01-20 15:27:05 15999
原创 C++ 隐式类类型转化 Implicit Class-Type Conversions
一些类的构造器总是用explicit修饰,这是为什么呢?它是做什么用的呢?我们先看看这个程序:#include #include using namespace std;class MyClass{public: MyClass(string n = "name") : name(n) { cout "construct" }
2013-01-18 01:37:07 1490
原创 QT 隐式共享 Implicit Sharing
很多QT中的类都是隐式共享的,它在作为参数传递时既安全又有效率。上一讲中提到了一个implicit sharing的问题,说QT容器类是隐式共享的。文档中讲了一个这样的问题:一些Qt函数返回一个容器,如果想使用STL风格的迭代器遍历某函数的返回值,就必须复制此容器并且遍历这个副本,例如,下面的代码给出了如何遍历由QSplitter::sizes()返回的QList的正确方式。 //
2013-01-17 23:44:07 3519
原创 QT容器类
QT不仅支持C++的STL模板库,同时自己也定义了一套容器类和与之操作的算法类,使用QT定义的这一套库,可以使在各个平台的表现相同。QT的这些容器被设计为更轻便,更安全和更容易使用。容器类是隐含共享(implicitly)的,可重入(reentrant)的和线程安全的。为容器遍历提供了两种迭代器(java-style,STL-style),并且QT提供了foreach关键字,更加方便元素遍历。
2013-01-17 18:53:32 45799 2
原创 QT5 信号槽连接机制
信号槽是QT最重要的机制之一,QT5中对这一机制进行了升级,使之更好用。首先看下这个例子:#include #include int main(int argc, char *argv[]){ QApplication a(argc, argv); QPushButton button("Quit"); // qt 5.0 signal-slot
2013-01-15 15:59:44 6007
原创 QT4.8.4 vs2010安装和测试
QT4.8在windows上的配置不像以前那样还需要自己配置环境变量了,只需要傻瓜式的几部下载和配置就可以完成准备:1. VS20102.qt_win_opensource_4.8.4_vs2010.exe: http://qt-project.org/downloads3.qt_vs_addin_1.1.11.exe: http://qt-project.org/download
2013-01-08 13:48:56 16549 2
原创 cocos2d-x AnchorPoint锚点
锚点是定位和变换操作的一个重点。锚点我们可以看成用一根图钉将一张纸或者相片钉在墙上的那个点。节点的位置是由我们设置的position和anchor point一起决定的。值得一提的是,anchor point的默认位置Layer的是左下,而其他的node是中点。节点的原点是父节点的左下角。 CCLayer* layer1 = CCLayerColor::create(ccc4(
2012-12-24 16:38:09 40425 11
原创 cocos2d-x Touch触屏事件
单点触控1. OnEnter或init中添加开启触屏接收属性:setTouchEnabled(true);2. 重载virtual void registerWithTouchDispatcher(void);并添加:CCTouchDispatcher::sharedDispatcher()->addTargetedDelegate(this,0, true)3. 重载
2012-12-24 10:21:30 3612 5
Breakout box2d学习代码
2013-03-11
游戏编程中的人工智能源码
2012-03-17
The C++ Standard Library
2011-11-24
C/C++库函数速查及文件大全.chm
2011-11-14
windows程序设计(第五版)
2011-10-22
qt_creator_教程
2011-09-16
C++ GUI Programming with Qt 4, Second Edition
2011-09-16
数据结构_严蔚敏版_pdf
2011-09-10
北大oj题集(清晰版,poj上原题集)
2011-04-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人