Cocos2d-x学习笔记1
版权声明:本文为博主原创文章。未经博主同意不得转载。
https://blog.csdn.net/u014734779/article/details/26077453
1.创建新的cocos2d-x 3.0 项目
在命令行中输入:
cocos new HelloWorld(项目名称)-p com.ss.pku(包名字)-l cpp(项目类型) -d D:\cocos\workspace(项目存放路径)
2.目录分析
resource 目录 存放资源文件
include和source文件 存放头文件和源码文件
AppDeleGate.h 和 AppDeleGate.c是cocos2d-x游戏的通用入口文件。
3.addChile方法,这种方法能够把一个游戏元素放置到还有一个元素之中。仅仅有把一个游戏元素放置到其它已经呈现出来的游戏元素中,它才会呈现出来。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1.以捕鱼游戏场景为例,场景能够大致分为四层。
菜单层、触摸层、动作层、背景层
2.关系图中的每个元素称作节点,关系图称作渲染树。渲染场景的过程就是遍历渲染树的过程。
渲染树的优势在于我们仅仅须要考虑节点相对于父节点的属性。就能够逐层穿件复杂的对象和动作。
3.动作是由Action类实现。派生出持续性动作ActionInterval和瞬时性动作ActionInstant。
全部的动作都是派生自以上两个类之中的一个。
4.动画;animation 是一种特殊的持续性动作,仅仅能应用于精灵上。一个帧动画。是由多张精巧的图片不停切换形成。
5.cocos2d-x 全部的对象都创建在堆上。创建一个对象首先要为对象分配内存,然后调用初始化方法来初始化对象。
6.使用构造函数创建的对象须要调用者负责释放,而使用工厂方法则不须要。
7.使用初始化方法或者工厂方法创建对象。使用訪问器方法模拟属性。cocos2d-x提供了Object-C风格的容器CCArray和CCDictionary。
8.AppDelegate负责控制游戏的生命周期。
9.选择器相似于C++中的类函数指针的机制,提供了创建选择器的宏。用来创建函数指针。
宏里面的參数,表示被指向的类方法。
10.cocos2d-x实现了自己的根类CCobject,引擎中的全部类都派生自CCObject。每个对象包括一个用来控制生命周期的引用计数器。
11.避免滥用autorelease(),仅仅在工厂方法等不得不用的情况下使用,尽量以release()来释放对象引用。
12.cocos2d-x 为我们提供了CCArray、CCDictionary等容器。
13.cocs2d-x内存管理的原则
程序段必须成对运行retain()和release()或者运行autorelease()来開始和结束对象的引用。
工厂方法返回钱,应该通过autorelease()结束对该对象的引用。
对象传值时,应考虑到新旧对象同样的特殊情况。
尽量使用release()而不是autorelease()来释放对象引用,以确保性能最优。
保存CCObject的子类对象时。应严格使用cocos2d-x提供的容器,避免使用STL容器,对象必须以指针存入。
14.CCLog cocos2d-x提供的日志输出函数。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1.CCDirector 控制游戏流程的总管类。提供画图方面的选项以及平台相关的功能。游戏呈现方面的设定,切换当前的游戏场景。
管理场景的方法在p33页。包括启动场景,切换场景,将场景压栈,将场景出栈,暂停,恢复和结束场景。注意的是,在载入场景,再进行切换。所以再载入完成的瞬间。系统中会同一时候存在两个场景。
注意内存。
2.场景的翻页、波浪、淡出淡入等场景,是派生自CCScene的CCTransitionScene系列特效类来实现的。
3.CCSprite代表了游戏中一个最小的可见单位。说它灵活是因为装载了一个平面纹理。具有丰富的表现力。并且能够通过多种方式载入。
4.我们能够觉得纹理就是一张图片,这张图片被精灵显示出来。
5.CCSprite会自己主动把图片作为纹理载入到游戏中。然后使用纹理初始化精灵。
6.zOrder代表了该节点下元素的先后次序。值越大顺序越靠上。
7.cocos2d-x存在两种坐标系。画图坐标系,以左下角为原点。纹理坐标系以左上角为原点。
8AnchorPoint用于设置一个锚点,以便精确地控制节点的位置和变换。
它的两个參量x和y的取值通常都是0到1之间的实数,表示锚点相对于节点长宽的位置。锚点在父节点中的坐标实际上是它相对于父节点左下角的坐标值。
9.void *表示为随意类型的指针,该指针与一地址值相关,可是不清楚在此地址上对象的类型。
10.定时器是使游戏动态变化所须要的工具。
我们捕鱼的碰撞检測机制能够通过update事件来实现。
鱼群的定时生成、免费金币的定时刷新,能够通过schedule定时器实现。
11.cocos2d-x 内置了三种特殊的层,CCLayerColor一个单纯的实心色块,CCLayerGradient,一个色块能够设置两种颜色的渐变效果。CCMenu,十分经常使用的游戏菜单。
Cocos2d-x学习笔记1的更多相关文章
- cocos2dx游戏开发——微信打飞机学习笔记(三)——WelcomeScene的搭建
一.场景与层的关系: cocos2dx的框架可以说主要由导演,场景,层,精灵来构成: 1.其中导演,意如其名,就是操控整个游戏的一个单例,管理着整个游戏. 2.场景就像电影的一幕剧情,所以说,懂得如何 ...
- android cocos2d-x for Android安装和学习笔记(请用adt-bundle21.1或以上导入)
引用:http://weimingtom.iteye.com/blog/1483566 (20121108)注意:这篇文章用cdt编译ndk工程的内容已过时(现在可以用adt-bundle,避免配置繁 ...
- [Cocos2d-x for WP8学习笔记] HelloWorld结构分析
先来看一下目录结构: Assets:游戏资源文件,图片音频等,Resource文件夹也有类似功能 include:用于放置游戏头文件 Shaders:渲染器着色器文件(大雾) cocos2dorig. ...
- cocos2d-x实战 C++卷 学习笔记--第4章 字符串 __String类
前言: <cocos2d-x实战C++卷>学习笔记.(cocos2d-x 是3.0版本) 介绍 cocos2d-x 通用的字符串类 __String . 使用cocos2d::__Str ...
- Cocos2d-x学习笔记(17)(TestCpp源代码分析-1)
TestCpp源代码基于Cocos2d-x2.1.3版本号,部分资源来自红孩儿的游戏编程之路CSDN博客地址http://blog.csdn.net/honghaier/article/details ...
- 《Cocos2d-x游戏开发实战精解》学习笔记4--实战一个简单的钢琴
上一节学习了使用Cocos2d-x播放音乐的方法,但是那种方法一般只适合于播放较大的音乐,而一般比较短小的音乐(如游戏中的打斗.按键音效等)则要通过playEffect来播放.本节使用该方法以及之前学 ...
- 《Cocos2d-x游戏开发实战精解》学习笔记3--在Cocos2d-x中播放声音
<Cocos2d-x游戏开发实战精解>学习笔记1--在Cocos2d中显示图像 <Cocos2d-x游戏开发实战精解>学习笔记2--在Cocos2d-x中显示一行文字 之前的内 ...
- cocos2d-html5学习笔记(六)--alpha2中cc.Sequence.create中的bug
cocos2d-html5学习笔记(六)--alpha2中cc.Sequence.create中的bug http://blog.csdn.net/allenice1/article/details/ ...
- 【cocos2d-x 3.x 学习笔记】对象内存管理
内存管理 内存管理一直是一个不易处理的问题.开发人员必须考虑分配回收的方式和时机,针对堆和栈做不同的优化处理,等等.内存管理的核心是动态分配的对象必须保证在使用完成后有效地释放内存,即管理对象的生命周 ...
- Cocos2d-x 学习笔记(20) ControlButton
[Cocos2d-x 学习笔记 目录链接] 1. 简介 ControlButton实现了按钮功能,根据触摸的位置和移动的过程可识别9中EventType类型,执行对应的回调函数. 直接继承了Contr ...
随机推荐
- Android ---------高德卫星地图绘制多个点和点的点击事件自定义弹窗
最近开发中,遇到一个多个点绘制,并实现点击事件,出现自定义窗口显示相关信息等功能,所以写了这篇博客. 从后台请求数据,得到多个经纬度,然后绘制在地图上,并实现点击,出现相关信息(自定义弹框实现) 先来 ...
- 1-18 编译安装内核支持ntfs文件系统
大纲: 源码编译Linux内核 使用Linux内核模块 实战:编译一个NTFS内核模块,实现Linux挂载NTFS文件系统并实现读写功能 =============================== ...
- Light oj 1379 -- 最短路
In Dhaka there are too many vehicles. So, the result is well known, yes, traffic jam. So, mostly peo ...
- 暗网 tor溯源困难根因——用户的请求会在分布全球的主机随机跳转三次,最终才到达服务器,这就造成了溯源的极其困难
Tor(The Onion Router)可以说是目前最为流行的网络匿名访问技术,用户的请求会在分布全球的主机随机跳转三次,最终才到达服务器,这就造成了溯源的极其困难,从而使得所有的访问者完全没有身份 ...
- Linux 挂载系统盘
适用系统:非IO优化+SSD云盘Linux(Redhat , CentOS,Debian,Ubuntu)实例,IO优化实例+SSD云盘数据盘分区挂载建议使用脚本:工具:auto_fdisk_ssd.s ...
- Algorithm2: 重复查过半数的元素
数组中,有一个元素的值在数组中重复的个数是超过一半,获得元素超过一半的元素值 int MoreThanHalfNumber(int * arr, int n){ in ...
- ParentNodes、childNodes、children之间的区别
"parentNode" 常用来获取某个元素的父节点. 把 parentNodes 理解为容器, 在容器中有个子节点 例: <div id="parent" ...
- volatile关键字解析(二)
volatile详解接下来,我们详细讲述一下volatile关键字volatile关键字具有两重语义 保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这个新值对其他线程来说是 ...
- Gradle2.0用户指南翻译——第三章. 教程
翻译项目请关注Github上的地址:https://github.com/msdx/gradledoc本文翻译所在分支:https://github.com/msdx/gradledoc/tree/2 ...
- Vim技能修炼教程(15) - 时间和日期相关函数
Vimscript武器库 前面我们走马观花地将Vimscript的大致语法过了一遍.下面我们开始深入看一下Vimscript都给我们准备了哪些武器.如果只用这些武器就够了,那么就太好了,只用Vimsc ...