- 博客(221)
- 资源 (7)
- 收藏
- 关注
原创 Qt双缓冲绘图简例
双缓冲绘图如果想在涂鸦板上绘制矩形,并且可以动态地绘制这个矩形,也就是说可以用鼠标画出随意大小的矩形,那该怎么办呢?我们先进行下面的三步,最后引出所谓的双缓冲绘图的概念。第一步:更改涂鸦程序的重绘函数。void Dialog::paintEvent(QPaintEvent *){ QPainter painter(this)
2014-09-25 12:36:09 2817
翻译 QPainter类参考
主页 | 所有的类 | 主要的类 | 注释的类 | 分组的类 | 函数QPainter类参考QPainter类低水平的绘制,例如在窗口部件上。 详情请见……#include qpainter.h>继承了Qt。被QDirectPainter继承。所有成员函数的列表。公有成员enum CoordinateMode { CoordDevice, C
2014-09-25 12:31:22 1516
原创 Qt涂鸦板及其放大简例
简单的涂鸦板:1.我们再在程序中添加函数。我们在dialog.h里的public中再添加鼠标移动事件和鼠标释放事件的函数声明:void mouseMoveEvent(QMouseEvent *);void mouseReleaseEvent(QMouseEvent *);在private中添加变量声明:QPixmap pix;QPoint lastPoint;QPo
2014-09-25 10:42:02 2762
原创 深入探索Qt的坐标系统
深入探索Qt的坐标系统获得坐标信息:为了更清楚地获得坐标信息,我们这里利用鼠标事件,让鼠标点击左键时输出该点的坐标信息。1.在工程中的dialog.h文件中添加代码。添加头文件: #include 在public中添加函数声明:void mousePressEvent(QMouseEvent *);然后到dialog.cpp文件中:添加头文件: #inclu
2014-09-25 00:35:32 1097
原创 利用QPixmap显示图片
现在我们来实现在窗口上显示图片,并学习怎样将图片进行平移,缩放,旋转和扭曲。这里我是利用QPixmap类来实现图片显示的。一、利用QPixmap显示图片。1.将以前的工程文件夹进行复制备份,我们这里将工程文件夹改名为painter05。(经常备份工程目录,是个很好的习惯)2.在工程文件夹的debug文件夹中新建文件夹,我这里命名为images,用来存放要用的图片。我这里放了一张linu
2014-09-24 23:49:31 24390
原创 渐变填充简例
在qt中提供了三种渐变方式,分别是线性渐变,圆形渐变和圆锥渐变。如果能熟练应用它们,就能设计出炫目的填充效果。线性渐变:1.更改函数如下:void Dialog::paintEvent(QPaintEvent *){ QPainter painter(this); QLinearGradient linearGradient(100,150,300,150
2014-09-24 22:53:04 696
原创 Qt中的QEvent简例
Qt中的事件可以在QEvent中查看。下面我们只是找两个例子来进行简单的演示。1.还是先建立一个Qt4 Gui Application工程,我这里起名为event。2.添加代码,让程序中可以使用中文。即在main.cpp文件中加入#include 的头文件包含。再在下面的主函数里添加QTextCodec::setCodecForTr(QTextCodec::codecForLoca
2014-09-24 22:32:13 1680
原创 STL总结之vector、deque、list
一、vector#include vector支持随机存取,在末端附加或删除元素时,vector性能相当好,若在前端或中部安插或删除元素时,性能差,因为操作点后的每一个元素都要移到另一个位置,而每一次移动都得调用赋值操作符。vector优异性能的秘诀之一是,配置比其所容纳的元素所需更多的内存。capacity()返回vector实际能够容纳的元素数量。如果超越这个数量,vect
2014-09-22 11:55:47 546
转载 cocos2d-X之精灵角色(CCSprite)
CCSprite是一副2D图像,CCSprite可以通过图像或者图像中的一个矩形子区域创建 如果它的父节点或者任意继承树上的节点是CCspriteBatchNode则具有下述特性:父节点是CCSpriteBatchNode时具有的特性: 更快的渲染速度,特别时CCSpriteBatchNode有很多子节点的情况下,但有以下限制:A、不支持照相功能(例如:CCOrbitCamera动
2014-09-20 20:42:35 1034 1
转载 Cocos2d-x加Box2D制作弹弓类游戏
文章原版为英文版,地址链接在文章尾部给出。原文代码版本为object-c版,本文代码版本为C++版。对原文大部分内容进行了翻译,并将对oc版的说明更改为C++版。文章cocos2d-x版本cocos2d-1.0.1-x-0.11.0。如何用Box2D和cocos2d-x制作弹弓类游戏 第一部分这是一篇由ios教程团队成员Gustavo Ambrozio上传的博客。一位拥有超过20年软件开发经验,超
2014-09-20 00:06:06 729
转载 cocos2dx 常见的49中动作详解
bool HelloWorld::init(){ ////////////////////////////// // 1. super init first if ( !CCLayer::init() ) { return false; } CCSprite * sp= CCS
2014-09-19 23:54:47 444
转载 cocos2d-x 数学函数、常用宏粗整理
首先第一个,看到有问题,要写很多代码处理问题,自己动手,丰衣足食——不是一条好路,是一条革命的老路。我们前面有那么多前任程序员的尸体,要学会翻烂它们……然后本文也是菜笔写的,仅简整理一下自己用的比较多一些cocos2d-x的util,帮助大家提高效率,要变懒,会偷懒,没有最懒,只有更懒。 1.数学类cocos2d-x 里使用最多的数学类型是CCPoint,一个点,本质上也是一个向量,对
2014-09-19 23:44:37 511
转载 cocos2d-x 关于CCpoint的一些常用函数
[cpp] view plaincopy/** Returns opposite of point. @return CCPoint @since v0.7.2 */ static inline CCPoint ccpNeg(const CCPoint v) //计算关于原点的对称点 { return ccp(
2014-09-19 23:40:38 1336
转载 cocos2d-x总结之CCSprite精灵的加载与常用操作
cocos2d-x总结之CCSprite精灵的加载与常用操作精灵是2D游戏中得主角,这次就总结一下cocos2d-x中精灵的使用。一,加载首先,创建一个变量 CCSprite *pSprite;加载函数分为两组initWithXXXX和spriteWithXXXX,其主要的区别是使用initWithXXXX的手工作业,而spriteWit
2014-09-19 21:42:37 552
原创 cocos2dx 常见的22种动画特效
bool HelloWorld::init(){ ////////////////////////////// // 1. super init first if ( !CCLayer::init() ) { return false; } CCSize size =CCDirector::sharedDirecto
2014-09-19 20:42:26 1281
原创 浅谈cocos2d-x 的坐标体系
无论是搞2d还是3d开发,最需要搞清楚的就是坐标系,这部分混乱的话就没啥奔头了。所以弄cocos2d,一上来就先把各种与坐标有关的东西搞清楚。 基本的两个坐标系:屏幕坐标系和GL坐标系。屏幕坐标系x轴朝右,y轴朝下。默认原点在左上角。GL坐标系x轴朝右,y轴朝上。默认原点在左下角。 在调用任何需要设置位置的函数,或从函数获取位置信息前,必须要明确
2014-09-19 20:37:49 514
转载 cocos2dx之onEnter,onExit
在创建一个layer时,会自动调用到layer中的onEnter,在退出当前的layer时,会调用到onExit,在CCLayer中,有四个成员方法:[cpp] view plaincopyvoid onExitTransitionDidStart();//2,创建完layer的时候调用,也就是1调用完之后调用 void onEnter
2014-09-19 19:09:54 583
转载 [Cocos2d-x] init()和onEnter()方法的区别
init()和onEnter()这俩个方法都是CCNode的方法。其区别如下:1.其被调用的顺序是先init(),后onEnter()。2.init()在类的初始化时只会调用一次。3.onEnter在该类被载入场景的时候被调用,可能会发生多次。4.CCLayer* cclayer = new MyLayer();
2014-09-19 19:05:45 527
转载 竖屏小游戏--喵星战争源码分析【完整】
Ccp文件介绍:GameMenuScene.cpp游戏主菜单GameMainScene.cpp游戏主页面GameObjHero.cpp主角GameHeroBullet.cpp主角的子弹GameObjEnemy.cpp敌人GameEnemyBullet.cpp敌人的子弹GameAboutScene.cpp关于页面GameMark.cpp
2014-09-19 12:11:59 1210
原创 cocos2d-x基本知识点:事件处理机制之加速度传感器事件
Coocs2D-x中使用加速度传感器代理CCAccelerometerDelegate提供的
2014-09-19 00:16:32 1010
转载 cocos2d-x 锚点与位置图解
1.在cocos2d-x中,谈论某某某物体的位置时,即锚点的坐标点。 2. 锚点的取值范围是0-1,分别指的是该锚点在x轴的比例,和在y轴的比例。如图所示,左下角的锚点是(0,0),右上角是(1,1),中心点是(0.5,0.5)。同理可以推出,左上角是(0,1),右下角是(1,0)。 3.cocos2d-x中默认物体的锚点是(0
2014-09-19 00:11:05 3094
原创 cocos2d-x基本知识点:文本渲染
文本渲染类:CCLabelAtlas类:CCLabelAtlas是使用图片作为文字的一种方式,该类可以通过图片直接定义,eg:CCLabelAtlas* label1 = CCLabelAtlas::create("test","fonts/1.png",48,64,' ');// 要显示的文本字符串,图片路径,字符宽度,字符高度,起始字符CCL
2014-09-18 18:23:24 707
原创 Box2d---闲时复习
定义重力,新建世界:b2Vec2 gravity;gravity.Set(0.0f,-10.0f);world = new b2World(gravity);允许刚体休眠和创建地面:world->SetAllowSleeping(true);world->SetContinuousPhysics(true);静态刚体:没有质量,没有速度,只可以手动来改变它的位置。棱
2014-09-16 21:03:37 693
转载 Box2d初步了解
怎么样创建一个box2d的世界。step.1 : 创建一个世界。 var world:b2World = new World( new b2Vec2(0,10) , true ); var1 : (gravity:b2Vec2) , 即重力。var2 : (doSleep:Boolean) , 用来管理世界中的物体是否可以休眠。 step.2 : 创建一个地面,把
2014-09-16 19:29:26 802
翻译 Box2D API 中文:b2World 类参考
构造函数与析构函数b2World::b2World ( const b2Vec2 & gravity, bool doSleep ) 构造一个世界对象。参数: gravity 世界重力向量。doSleep 物体是否可休眠。通过不模拟休眠物体来提高引擎的效率。 b2World::~b2World ( ) 摧毁世界。所有的物理学实体被摧毁,而且所有的堆内存被释放。成
2014-09-16 19:21:35 1568
ACM-ICPC算法训练教程-余立功-清华大学出版社5
2014-04-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人