1. 概述 TextureCache是对Texture2D纹理的缓存,SpriteFrameCache是对SpriteFrame的缓存,每个SpriteFrame是对Texture2D的封装,Sprite是对Texture2D和SpriteFrame的封装,实现一张图片在屏幕上的变换. 2. Sprite 2.1 概述 Sprite是2d图像,是在屏幕上可变化的对象,受到控制. 通过对Sprite的操作,实现了一张图片在游戏屏幕上的各种变化. Sprite拥有一些属性,继承自父类Node,包括位…
从2019年7月开始学习游戏引擎Cocos2dx,版本3.17. 学习笔记尽量以白话的形式表达自己对源码的理解,而不是大篇幅复制粘贴源码. 本人水平有限,欢迎批评指正! Cocos2d-x 学习笔记 ‎Cocos2d-x 学习笔记(3.1) Scene 场景与场景切换 ‎Cocos2d-x 学习笔记(3.2) TransitionScene 过渡场景和场景切换的过程 ‎Cocos2d-x 学习笔记(3.3) Layer ‎Cocos2d-x 学习笔记(4) Scheduler Timer 调度与…
1. 总结 Sprite和SpriteFrame和Texture2D关系紧密,三个类都继承了Ref类.精灵有成员精灵帧和纹理,精灵帧有成员纹理.精灵帧和纹理被精灵帧引用时,引用计数增加,不再被引用时,引用计数减少.纹理被精灵帧引用时也同理. 一个纹理可以被多个精灵帧.精灵引用,一个精灵帧可以被多个精灵引用. 为什么纹理缓存容器不用CC的包装类Map 纹理缓存和精灵帧缓存不同,纹理缓存的容器不是包装类,即向容器中增加和删除纹理不会改变纹理的引用计数. 纹理除异步之外不执行autorelease()…
一.场景与层的关系: cocos2dx的框架可以说主要由导演,场景,层,精灵来构成: 1.其中导演,意如其名,就是操控整个游戏的一个单例,管理着整个游戏. 2.场景就像电影的一幕剧情,所以说,懂得如何划分好游戏的场景,是开始动手做游戏的第一步. 3.一个场景会有很多层,用来处理场景不同的功能. 4.而精灵则是最小的单位,比如子弹,飞机,敌机都是一个个的精灵所组成的. 二.WelcomeScene的搭建: 1.场景和层的二种搭建方法: (1)一种就是跟HelloWorld示例一样的方法,以一个层为…
内存管理 内存管理一直是一个不易处理的问题.开发人员必须考虑分配回收的方式和时机,针对堆和栈做不同的优化处理,等等.内存管理的核心是动态分配的对象必须保证在使用完成后有效地释放内存,即管理对象的生命周期.因为C++是一个较为底层的语言,其设计上不包括不论什么智能管理内存的机制.一个对象在使用完成后必须被回收.然而在复杂的程序中.对象全部权在不同程序片段间传递或共享,使得确定回收的时机十分困难,因此内存管理成为了程序猿十分头疼的问题. 还有一方面,过于零散的对象分配回收可能导致堆中的内存碎片化,减…
[Cocos2d-x 学习笔记 目录链接] 1. 简介 ControlButton实现了按钮功能,根据触摸的位置和移动的过程可识别9中EventType类型,执行对应的回调函数. 直接继承了Control.拥有9种EventType和4种State. 2. create 按钮的创建需要Label和Scale9Sprite. 构造函数: ControlButton::ControlButton() : _isPushed(false) , _parentInited(false) , _doesA…
一.浏览器兼容 1.1.概要 世界上没有任何一个浏览器是一样的,同样的代码在不一样的浏览器上运行就存在兼容性问题.不同浏览器其内核亦不尽相同,相同内核的版本不同,相同版本的内核浏览器品牌不一样,各种运行平台还存在差异.屏幕分辨率不一样,大小不一样,比例不一样.兼容性主要可以分类为: 1).CSS兼容2).JavaScript兼容3).HTML兼容 这三类也是前端的主要组成部分,都存在一定的兼容性问题,知己知彼,百战百胜,我们先了解浏览器的发动机—内核. 多年前我们一直为IE6兼容烦恼,为它没少加…
ActionScript学习笔记 ActionScript中预定义的数据类型:Boolean.int.Number.String.uint 其中,int.Number.uint是处理数字的.int用来处理整数,Number用来处理很长又有小数点的数字,uint处理很大的正整数. 复杂数据类型:Array.Date.Error.Function.RegExp.XML.XMLList 自定义类属于复杂数据类型. public class AS_001 extends Sprite {       p…
引用:http://weimingtom.iteye.com/blog/1483566 (20121108)注意:这篇文章用cdt编译ndk工程的内容已过时(现在可以用adt-bundle,避免配置繁琐的参数),最新版ADT 20.0.3支持右键把Android工程直接添加native特性(即Android工程和CDT Makefile工程合二为一),不需要做太多复杂的设置,而且完全兼容ndk-build命令行编译.当然,因为会执行完全编译,所以如果经常clean,又想加快编译速度,得另想方法.…
NGUI学习笔记汇总,适用于NGUI2.x,NGUI3.x 一.NGUI的直接用法 1. Attach a Collider:表示为NGUI的某些物体添加碰撞器,如果界面是用NGUI做的,只能这样添加.(注:用Component添加无效). 2. Attach an Anchor:表示为该物体添加了UIAnchor脚本,作用是避免像素偏移的问题 3. Attach UIStretch:表示为该物体添加了UIStretch脚本,提供缩放功能 4. Make Pixel Perfect:表示自动为你…