- 博客(46)
- 资源 (74)
- 收藏
- 关注
原创 【玩转cocos2d-x之二十】从CCObject看cocos2d-x的内存管理机制
再看CCObject,剔除上节的拷贝相关,以及Lua脚本相关的属性和方法后,CCObject还剩下什么?1.剩下什么?可以看到整个CCObject就是围绕着m_uReference和m_uAutoReleaseCount在转。这两个变量的解释如下。所以CCObject剩下的其实就是对内存的管理。CCObject::CCObject(void)//构造函数: m_nLuaI
2013-10-31 09:09:13 6679 2
原创 【玩转cocos2d-x之十九】从CCObject看cocos2d-x的拷贝机制
CCObject在之前的文章中出现了N次,它扮演了一个老祖宗的角色,但是它到底是做什么的?先从它看看cocos2d-x的拷贝机制吧。1.CCCopyingCCObject从CCCopying继承而来,而CCCopying拥有唯一的虚函数copyWithZone,这个函数可以认为是拷贝的一个协议,所有继承了CCObject并且需要实现拷贝功能的子类都可以通过它来实现,它的源码很简单,
2013-10-30 08:13:30 7811 6
原创 【玩转cocos2d-x之十八】仿《中国好学霸》文字拖拽和定位
现在各种猜成语猜歌名好学霸之类的游戏火的一塌糊涂。本节就介绍下文字的拖拽和定位。1.基本原理其实这只是精灵的简单拖拽和坐标的识别而已。当触摸点在精灵的范围内,精灵可以感应拖动,当触摸结束进行位置判断,如果在有效范围内就进行自动定位。2.实现2.1.背景加入和文字精灵的加入这里是采用这一节http://blog.csdn.net/jackystudio/artic
2013-10-28 08:49:59 6850 13
原创 【玩转cocos2d-x之十七】cocos2d-x中文显示
cocos2d-x的中文显示其实就是一个UTF-8编码在作怪而已,一种简单的方法就是把文本保存为UTF-8编码即可(注意不是UTF-8 + BOM),建议使用UE,Sublime Text或者EditPlus之类的本文编辑器。这里介绍另一种方法:通过读取xml文件显示中文,这种方法更利于软件的国际化,demo顺便实现了中英文切换。1.xml文件先写好一个xml文件(CHN_
2013-10-25 08:20:25 8927 5
原创 【玩转cocos2d-x之十六】滚动字幕和公告
滚动字幕和公告是游戏中经常使用到的元素,本文大致写一下实现方法,至于例子中具体的坐标值,请不要纠结。。。这和美工关系还是蛮大的。我PS技术太搓了。。。1.原理其实它们的实现都是简单的通过调用update来更新位置达到的移动效果,和背景滚动有点类似,一旦滚动结束就重置为起点,开始新的滚动。只是为了达到在某个区域内滚动而不至于超出这个区域,有时候会用一些前景图来做遮盖,所以这个
2013-10-24 08:19:50 9362 4
原创 【玩转cocos2d-x之十五】关卡选择的设计
这节介绍一下游戏中帮助界面和关卡选择的设计,其实都是一样的,关键在于美工。这里采用自定义TableView层来实现。1.导入头文件和设定空间因为TableView相关的类是在扩展包里面,所以必须先声明[cpp] view plaincopy#include "cocos-ext.h" USING_NS_CC_EX
2013-10-23 09:35:26 8377 15
原创 【玩转cocos2d-x之十四】菜单选项卡的实现
有时候,我们希望实现一个选项卡功能,就是切换tab选项,场景中的内容会跟着改变,但是tab选项卡不动。这是用切换场景的方式没办法做到的。这里我们就可以使用CCLayerMutiComplex来实现这个功能。1.创建布景这里创建3个布景来做示范。分别是Laye1,Layer2和Layer3。代码就不贴了,布景内容可以直接使用HelloWorld的代码。
2013-10-22 08:15:44 7597 8
原创 【玩转cocos2d-x之十三】CCMenu的布局
前两天写个游戏,发现CCMenu的布局还是比较有意思的,这里总结一下,以便后用。1.概况CCMenu是cocos2d-x的菜单类,但它本身并不具备菜单具体属性,而是作为一个父节点,将一些具体类型的菜单添加进去来达到菜单目的的。我们正常会这么使用它:先创建子菜单项CCMenuItem,然后将子菜单项CCMenuItem加入菜单CCMenu,最后把CCMenu加入当前层CCLa
2013-10-21 09:30:28 9869 2
原创 【玩转cocos2d-x之十二】plist解析工具:Anti_TexturePacker
原创作品,转载请标明:http://blog.csdn.net/jackystudio/article/details/12867863之前拿了一些别人的图片素材,是用TexturePacker打包合成的,结果写程序的时候不知道每个合成前小png图的名字是什么,只能一个一个从plist文件中找,然后猜测对应的名字,再进行显示,如果不对,还要继续猜。。。坑爹啊,效率大大降低了,时间都耗在找...
2013-10-19 08:11:33 30510 140
原创 【玩转cocos2d-x之十一】定时器schedule
如果我们想定时执行一个动作怎么办?CCScheduler帮了我们一个大忙。1.概况CCNode内部封装了一个[cpp] view plaincopyCCScheduler *m_pScheduler; 正是通过它我们可以很轻松地完成一些定时功能,所以定时器是节点所具备的功能。定时器分为2种
2013-10-18 09:22:03 21388 3
原创 【玩转cocos2d-x之十】cocos2d-x坐标系
cocos2d-x采用的是笛卡尔平面坐标系,也就是平面上两条垂直线构成的坐标系,平面上任意一点都可以用(x,y)来表示。(1)就坐标系方向而言,cocos2d-x分为屏幕坐标系和OpenGL坐标系。(2)就节点本身而言,cocos2d-x分为绝对坐标系和相对坐标系。1.屏幕坐标系屏幕坐标系,也叫UIKit坐标系,原点在屏幕左上,x轴向右,y轴向下。cocos
2013-10-17 08:08:48 14150 12
原创 【玩转cocos2d-x之九】动作类CCAction
精灵也出来了,但是不会动的精灵是木有用的。。。CCAction就是负责来解决精灵运动的问题。1.概况CCAction直接从CCObject继承而来,注意它代表的是一个动作,是动词。精灵执行了这个动作,而不是名词。CCAction本身并没有什么功能,主要是定义了一些通用函数和虚函数让子类实现多态性。2.接口[cpp] vie
2013-10-16 08:17:39 8825 4
原创 【玩转cocos2d-x之八】精灵类CCSprite
精灵类CCSprite可以说是游戏的主角了,也是我们平时最常用到的类。1.概况CCSprite本质上就是一个二维图片,是静态的。游戏中的动画只不过是让一张张静态图片快速更换达到的动态效果。CCSprite继承于CCNodeRGBA,并实现了CCTextureProtocol的接口。因此CCNodeRGBA所具有的RGB和透明值这些属性和接口CCSprite都有,
2013-10-15 11:39:22 10134
原创 【玩转cocos2d-x之七】场景类CCScene和布景类CCLayer
场景类CCScene和布景类CCLayer都是作为一个容器来使用,这里简单地看下它们的实现:1.场景类:CCSceneCCScene类继承于CCNode,它的实现很简单,就是基本上没添加什么内容。。。它只是作为一个容器(父节点)的抽象概念存在。对比CCNode差别有:(1)构造函数中设置了不使用锚点定位,而是使用了坐标原点,即使设置了锚点也不起作用。
2013-10-14 14:34:25 9383 2
原创 【玩转cocos2d-x之六】节点类CCNode
节点类CCNode可以说是游戏元素的祖宗了,基本上我们看得到的游戏元素都是以它为原型进行扩展的。像CCScene,CCLayer,CCSprite,CCMenu,CCSpriteBatchNode等等都是从CCNode继承而来。另外如果我们要自定义精灵,那么从CCNode继承也是一个很不错的选择。1.概况CCNode直接从CCObject继承而来,有如下几个特点:(1)
2013-10-14 08:24:33 10167 6
原创 【玩转cocos2d-x之五】导演类CCDirector
既然cocos2d-x都帮我们封装好了,使得开发与平台无关,那接下来我们就单纯地开始好好玩游戏吧!这几篇是对cocos2d-x一些基本且重要的元素进行解释和API介绍,之前没有系统的看过API,有时候某些功能引擎都已经提供好了,不知道还是会自己去写。所以全面地了解一下是必须的。1.概况导演类CCDirector是cocos2d-x引擎中非常重要的一个类,它是一个抽象
2013-10-12 08:46:36 9950 2
原创 【玩转cocos2d-x之四】cocos2d-x怎么实现跨平台
cocos2d-x到底是这样实现跨平台的呢?这里以Win32和Android为例。1.跨平台项目目录结构先看一下一个项目创建后的目录结构吧!这还是以HelloCpp为例。 从左边目录可以看到,Classes和Resource已经平台无关了,而Classes中包含了AppDelegate类,因此我们可以认为AppDelegate是与
2013-10-11 08:36:02 14769 2
原创 【玩转cocos2d-x之三】cocos2d-x游戏是怎么跑起来的
虽然cocos2d-x v3.0 alpha版已经出来了,也改进了不少,有兴趣的可以去尝尝鲜。因为后面可能还会配合cocoStudio写一下博客,而现在v1.0.0.0版本需要配合cocos2d-x v2.2.0使用。所以这里选择了V2.2.0版的cocos2d-x。一个新的东西,从头开始吧!从HelloWorld出发看一下一个cocos2d-x游戏是怎么跑起来的。先看看它的结
2013-10-10 08:14:53 11112 6
原创 【玩转cocos2d-x之二】游戏和引擎构成
1.游戏构成我们以超级马里奥游戏作为蓝本来描述一下一个游戏的构成。1.首先我们需要一个容器来放置游戏元素,每一个关卡都是一个容器,这叫场景。2.蓝天白云,各种板砖水管,这些是布景,放置在关卡中,通过布景的叠加,构成了游戏的主要背景。3.主角马里奥兄弟和各种小怪兽,这些叫精灵。这是游戏互动的主要元素。4.马里奥可以走路,可以跳跃,可以发射子弹。这些是精灵的动作。5.过关了,要
2013-10-09 10:38:55 7438 2
原创 【玩转cocos2d-x之一】V2.2.0版本开发环境配置
现在cocos2d-x处在上升期,各个版本的变化还是比较大的,单从环境配置来看,从v2.0到v2.2就变化了不少。今天配置了一下V2.2.0环境,创建项目,并进行交叉编译,发现比之前麻烦了不少。这里稍微记录一下。3.0版本出来了,大概看了下目录和2.2的差不多,环境配置也基本一样。1.VS,VA,Cygwin,Java,Eclipse,ADT,SDK,NDK这里就不重复啰嗦这些了,
2013-10-08 14:11:56 19675 52
转载 【数据结构之排序11】各种内部排序方法的比较和选择
按平均时间将排序分为四类:(1)平方阶(O(n2))排序 一般称为简单排序,例如直接插入、直接选择和冒泡排序;(2)线性对数阶(O(nlgn))排序 如快速、堆和归并排序;(3)O(n1+£)阶排序 £是介于0和1之间的常数,即0(4)线性阶(O(n))排序 如桶、箱和基数排序。各种排序方法比较简单
2013-10-23 11:54:04 3158
转载 【数据结构之排序10】基数排序
基数排序(Radix Sort)是对箱排序的改进和推广。1、单关键字和多关键字文件中任一记录R[i]的关键字均由d个分量 构成。若这d个分量中每个分量都是一个独立的关键字,则文件是多关键字的(如扑克牌有两个关键字:点数和花色);否则文件是单关键字的, (0≤j多关键字中的每个关键字的取值范围一般
2013-10-22 11:11:07 2032
转载 【数据结构之排序9】箱排序
分配排序的基本思想:排序过程无须比较关键字,而是通过"分配"和"收集"过程来实现排序.它们的时间复杂度可达到线性阶:O(n)。本节介绍第一种分配排序方法:箱排序。1、箱排序的基本思想箱排序也称桶排序(Bucket Sort),其基本思想是:设置若干个箱子,依次扫描待排序的记录R[0],R[1],…,R[n-1],把关键字等于k的记录全都装入到第k个箱子里(分配),然后按序号依次
2013-10-22 11:04:31 2069
转载 【数据结构之排序8】归并排序
归并排序(Merge Sort)是利用"归并"技术来进行排序。归并是指将若干个已排序的子文件合并成一个有序的文件。两路归并算法1、算法基本思路设两个有序的子文件(相当于输入堆)放在同一向量中相邻的位置上:R[low..m],R[m+1..high],先将它们合并到一个局部的暂存向量R1(相当于输出堆)中,待合并完成后将R1复制回R[low..high]中。(1)
2013-10-22 10:52:27 2252
转载 【数据结构之排序7】堆排序
本节介绍第二种选择排序:直接选择排序。1、 堆排序定义n个关键字序列Kl,K2,…,Kn称为堆,当且仅当该序列满足如下性质(简称为堆性质):若将此序列所存储的向量R[1..n]看做是一棵完全二叉树的存储结构,则堆实质上是满足如下性质的完全二叉树:树中任一非叶结点的关键字均不大于(或不小于)其左右孩子(若存在)结点的关键字。【例】关键字序列(10,15,56,25,30,70
2013-10-21 17:27:36 2464
转载 【数据结构之排序6】直接选择排序
选择排序(Selection Sort)的基本思想是:每一趟从待排序的记录中选出关键字最小的记录,顺序放在已排好序的子文件的最后,直到全部记录排序完毕。常用的选择排序方法有直接选择排序和堆排序。本节介绍第一种选择排序:直接选择排序。1、直接选择排序的基本思想n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果:①初始状态:无序区为R[1..n],有序区为空。
2013-10-21 17:04:53 1692
转载 【数据结构之排序5】快速排序
1、算法思想快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。(1)分治法的基本思想分治法的基本思想是:将原问题分解为若干个规模更小但结构与原问题相似的子问题。递归地解这些子问题,然后将这些子问题的解组合为原问题的解。(2)快速排序的基本思想设当前待排序的无序
2013-10-21 16:52:26 2774
转载 【数据结构之排序4】冒泡排序
交换排序的基本思想是:两两比较待排序记录的关键字,发现两个记录的次序相反时即进行交换,直到没有反序的记录为止。应用交换排序基本思想的主要排序方法有:冒泡排序和快速排序。本文介绍第一种交换排序方法:冒泡排序。1、排序方法将被排序的记录数组R[1..n]垂直排列,每个记录R[i]看作是重量为R[i].key的气泡。根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R:凡扫描到违反本
2013-10-21 16:31:07 1892
转载 【数据结构之排序3】希尔排序
希尔排序(Shell Sort)是插入排序的一种。因D.L.Shell于1959年提出而得名。希尔排序基本思想基本思想:先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为dl的倍数的记录放在同一个组中。先在各组内进行直接插人排序;然后,取第二个增量d2该方法实质上是一种分组插入方法。给定实例的shell排序的排序过程
2013-10-21 16:07:30 2183
转载 【数据结构之排序2】直接插入排序
插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件中的适当位置,直到全部记录插入完成为止。本节介绍两种插入排序方法:直接插入排序和希尔排序。直接插入排序基本思想1.基本思想假设待排序的记录存放在数组R[1..n]中。初始时,R[1]自成1个有序区,无序区为R[2..n]。从i=2起直至i=n为止,依次
2013-10-21 15:49:08 2584
转载 【数据结构之排序1】排序的基本概念
排序(sort)或分类所谓排序,就是要整理文件中的记录,使之按关键字递增(或递减)次序排列起来。其确切定义如下:输入:n个记录R1,R2,…,Rn,其相应的关键字分别为K1,K2,…,Kn。输出:Ril,Ri2,…,Rin,使得Ki1≤Ki2≤…≤Kin。(或Ki1≥Ki2≥…≥Kin)。1.被排序对象--文件被排序的对象--文件由一组记录组成。记录则由若干个数
2013-10-21 15:41:52 2866
原创 【Git入门之十五】Github操作指南
最终篇,介绍一下Github网站的使用,主要是翻译为主,简化了已介绍过的内容。1.如何创建一个仓库?1.1.点击New Repository。1.2.填写仓库信息,点击Create Repository。1.3.创建一个README文件。这步就不说了,在本地创建,然后push到远程仓库中。2.如何F
2013-10-07 10:43:44 8510 2
原创 【Git入门之十四】Git GUI
文章都快写完了,Git GUI才浮出水面,很多人要骂我,这么方便的东西怎么不早拿出来。当然命令行和图形界面各有千秋,个人觉得命令行更能让人清楚的掌握整个项目的代码线。当然萝卜青菜各有所爱,Windows,Linux也是一样。喜欢什么客官您挑。本文只做简单介绍。1.Git GUI有什么?霸气测漏的右键菜单和可视化管理界面。2.初始化仓库
2013-10-07 10:39:54 16224 7
原创 【Git入门之十三】Ubuntu和git
之前我们都是在Windows平台下操作git。现在我们改用Ubuntu试一试吧!先准备好Ubuntu或者Linux系统吧。这里采用13.04版本虚拟机环境1.Ubuntu下使用git打开终端(Ctrl+Alt+T)。Ubuntu下就没有git bash了,都是使用terminal。1.1.安装SSH[cpp] view plain
2013-10-07 10:36:12 4936
原创 【Git入门之十二】DIY Git
Git的配置是很有学问的,如果弄懂它,将对你帮助很大。1.用户配置这是全局的。[cpp] view plaincopy#设置用户名 $ git config --global user.name "Jacky" #设置邮箱 $ git config --global user.email fu
2013-10-07 08:26:03 3516 1
原创 【Git入门之十一】标签管理
标签是啥?标签就是给某个版本的一个标记。1.为当前版本创建标签使用《git tag 标签名》来给当前标签命名。[cpp] view plaincopy#切换到master $ git checkout master Switched to branch 'master' #给master当前版
2013-10-05 14:21:12 4043
原创 【Git入门之十】Rebase操作
Rebase,衍合?变基?唉,我也不知道要怎么翻译合适。。。变基怪怪的,我擦勒,你才变基呢。。。1.Rebase提交rebase命令允许你编辑你的提交历史,比如你可以把多个提交(commit)联合成一个,可以对它重新排序,跳掉某个提交或者编辑提交信息。这是非常有用的,当你要再推送到远程仓库之前要想重新编辑提交信息。以下举个例子把多个提交联合成一个。[
2013-10-05 14:18:01 5716
原创 【Git入门之九】解决冲突
1.多人协作冲突如果多人同时修改了同一个文件,那会出现什么样的结果呢?我们试着这么做。(1)修改jackygit2在jackygit2中修改jackydata01,提交修改并推送到远程仓库(这里使用本地远程仓库)。正常,没问题。[cpp] view plaincopy#切换到jackygit2本地库,这是远程仓库那
2013-10-05 14:14:19 35423 6
原创 【Git入门之八】分支管理
1.分支又是神马?我为什么说又是。。。分支就是一个我们能通过它创建出独立代码副本的东东。建立一个git仓库时,它会默认帮我们创建一个主分支,叫做master,之前所有的介绍我们都是在mater上面进行操作的。这是一个最简单的分支模型,本文也基于此模型。每个点代表一个版本,master代表默认主分支,而branch代表新建的分支,HEAD可以认为是一个移动的指针,它指向谁,谁
2013-10-05 14:10:01 5520
原创 【Git入门之七】Git和Github
上一篇介绍了如何在本机创建一个远程仓库,但是如果硬盘挂了,那重新码起吧。。。1.github是神马?一家公司,一个网站。主要负责基于git的版本托管服务。看看这篇文章(http://www.yangzhiping.com/tech/github.html),你就会知道github是神马。目前github上的项目都是开放的,如果想要设置私有,那交钱吧。
2013-10-04 08:27:58 8931
Anti_TexturePacker v1.2
2013-10-23
Anti_TexturePacker v1.1
2013-10-21
Anti_TexurePacker
2013-10-19
Anti_TexturePacker for mac.zip
2019-06-24
exe文件Anti_TexturePacker v1.7
2015-01-21
Anti_TexturePacker v1.6
2014-02-08
Anti_TexturePacker v1.5
2014-02-07
Anti_TexturePacker v1.4
2014-01-25
高仿QQ新闻右下角弹窗MFC/Win32版
2014-01-09
cocos2d-x嵌入webview
2013-12-26
Anti_TexturePacker v1.3
2013-12-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人