上一篇文章中介绍了简单封装PageView 的基本实现。XKPageView基本实现了,PageView的功能,就可能用来实现上篇说的使用系统自带PageView实现不了的功能了。同样地,我们先来看看使用效果图:进阶使用XKPageView,主要用到了我们上篇说到的XKPageViewDelegat...
在Cocos2d-x 绘图的方式有两种:1. 使用OpenGL的绘图原语DrawPrimitives;2. 使用DrawNode。本节中主要学习使用DrawNode来进行图形的绘制。【小知识】分段数:即绘制曲线一般都是通过绘制“样条曲线”来实现,而分段数即样条段数。二次贝塞尔曲线:起点终点之间的一条...
先看显示效果:因为是在模拟器上录像的,所以看上去会有点卡,真机测试就不会了。直接看代码。我就直接上代码啦,代码里面都有注释了,一些太简单的东西就不多啰嗦。PageView.h// XKPageView.h// XKPageView//// Created by Joueu on 14-11-2...
开发中我们常会用到截图,下面比较一下Cocos2d-x 2.x版本与3.x版本屏幕截图的两种方式:(1)使用RenderTexture:这是在2.x版本时最常用的的截图方法。(2)使用utils::captureScreen() :在3.2版本中新增的截图方法。RenderTextureRender...
在开发中,有时候我们需要显示一张图片的部分区域,比如文字遮罩、图片遮罩等。本节要讲的ClippingNode的功能效果大致就是上面所看到的遮罩效果。ClippingNode1、原理ClippingNode(裁剪节点)可以用来对节点进行裁剪。ClippingNode是Node的子类,可以像普通节点一样...
这个问题我们先拿新版本和2.X比较一下:在2.x中处理事件需要用到委托代理(delegate),相信学过2.x的触摸事件的同学,都知道创建和移除的流程十分繁琐。而在3.x中由于加入了C++11的特性,而对事件的分发机制通过事件分发器EventDispatcher 来进行统一的管理。事件监听器主要有:...
一、iOS与图片内存在iOS上,图片会被自动缩放到2的N次方大小。比如一张1024*1025的图片,占用的内存与一张1024*2048的图片是一致的。图片占用内存大小的计算的公式是;长*宽*4。这样一张512*512 占用的内存就是 512*512*4 = 1M。其他尺寸以此类推。(ps:iOS上支...
图片资源加密,Lua文件加密游戏开发中常遇到资源保护的问题。目前游戏开发中常加密的文件类型有:图片,Lua文件,音频等文件,而其实加密也是一把双刃剑。需要安全那就得耗费一定的资源去实现它。目前网上也有用TexturePacker工具来加密的,不过针对性还是不够强。分析一下原理为:1. 转格式:将需要...
一.centosos: centos63(Final)git: 1.7.1gitolite步骤很简单,需要安装git, ssh支持,gitolite, 然后公钥 . 本文全部采用的yum包过来的.1. 登录服务器,安装,(# 是root 登录后的.)#yum install perl openssh...
所使用的环境:Win7 64位 Cocos2d-JS v3.1 Cocos Code IDE v1.0.0.Final,Cocos2d-JS使用scheduler小结正文:主要分为两种方式,一种是直接用延时函数,比如scheduleCallbackForTarget,scheduleOnce...
--魔塔是一类固定数值的RPG游戏。魔塔最早是两位日本 人做的,引进中国后胖老鼠又制作了21层魔塔,然后就是新型作品新新魔塔,魔塔2000,后来0ksh制作了RMXP用的魔塔样板,参与制作魔塔的人也就越来越多了但制作水平不一。虽然魔塔的界面很像是一般的地牢游戏,貌似随便的打打杀杀就可以过关,但事实上...
Cocos2d-x粒子系统和存储游戏中有时会遇到一些特别绚丽的特效,Cocos2d-x提供了一些默认的特效,让开发者可以用一行代码让画面变得更绚。大型的游戏需要存数据,小型的游戏需要记分,本节教程主要讲解如何将数据存储到手机上。粒子系统其实很简单,就是特效效果,比如爆炸、烟花、雨雪等。每个特效都是一...
总结、代码、效果看Cocos2d-x 3.3TileMap的A*算法实现详解总结:Cocos里面的Vector比C++的vector容纳的类型少很多,因此用标准库的vector地图是320*680,瓦片是32*32像素首先添加点击事件,获取终点的瓦片坐标,并记录下来设定起始坐标,并将起始坐标作为【当...
Spritesheet的plist文件格式解析1. Spritesheet的plist文件中字段的含义plist文件是游戏开发中将一些小图合并成一张大图的时候生成的配置文件,从大图中获取小图需要对应plist文件中的信息,如上图中,game.png是小图合成后的大图,game.plist是对应的pl...
Cocos2d-x是一个单线程循环的引擎,引擎通过每一帧之间更新游戏中各元素的状态,以保证它们之间互不干扰,这个过程中尽管看起来成程序像是在并行运行,但实际上却是一个串行过程。举例来说,在游戏进行场景跳转时,通常我们会释放当前场景的资源并加载下一个场景的资源,这样就需要将下一个界面需要用到的纹理加载...
为了正确地释放对象的内存,Cocos2d-x使用Objective-C里面的自动回收池的机制来管理对象内存的释放。Autorelease有点类似于一个共享的”智能指针”,该”智能指针”的作用域为一帧,该帧结束后,它将释放自己的引用计数,此时,如果该对象没有被其他”共享指针”引用,则对象被释放。如果对...
特点经过上面几节课的学习,我们知道Cocos2d-x的内存管理可以交给AutoReleasePool、Vector、Map进行管理,然后这三个都是容器的概念,Cocos2d-x的元素是否可以自己管理自己的内存呢?答案是可以的,那么就是RefPtr,Cocos2d-x中一种类似shared_ptr指针...
和大家一起分享我的总结:Cocos2d-x开发知识点总结1. CCMoveTo动作运行多次,位置会发生诡异的变化,比如变成目标位置的几倍。解决办法,确保每次CCMoveTo之前停止之前的动作。2. 在onEnter()函数中,忘记调用父类的onEnter()函数会导致动画等无效。还有在init()函...
VectorVector是3.x系列之后提出来的新的数据结构,综合了std::vector有很多函数,可以很方便的进行很多数据操作,也融入了Cocos2d-x的内存管理。Vector区别于普通的类型sprite等,Vector是用于存储一组数据的容器,顾名思义也就理应当管理一大块内存。比如可以将5个...
C++的内存管理机制优点:C++使用new在运行时,从堆里给程序分配一块内存空间,开发者可以直接拿到内存的地址进行操作,直接访问内存地址的方式可以提高内存使用的灵活性,当这块内存不再使用的时候使用delete将内存释放。缺点:极易出错,比如出现:野指针:指针指向的内存已经被释放,而其他指针可能仍然指...