cocos学习
文章平均质量分 81
穆玄
这个作者很懒,什么都没留下…
展开
-
Quickcocos从安装到打包
Quick-Cocos2dx-Community 是跨平台的游戏引擎,支持时下流行的 Android 移动操作系统。本节将教大家如何在 Windows 上把已经开发好的游戏打包为 Android 上可运行的 apk 文件。Quick-Cocos2dx-Community Android 打包分以下几个步骤:(1)安装quick cocos 3.3(2)安装JDK(3)安装ADT...原创 2019-01-08 17:40:27 · 1032 阅读 · 0 评论 -
cocos2dx基础篇(26) 单例模式
单例模式,说的通俗一点就是:创建某个类的全局唯一静态实例对象。也就是说从它创建开始,一直到整个游戏程序结束才会释放资源,期间一直保存的着数据。 单例类在大部分游戏中应该是必不可少的部分,如整个游戏音乐的开关控制、数据的加载与存储等都需要一个全局访问点来控制,那就需要用到单例类了。 【3.x】 shared***() 改为 getInstance() 。 ...转载 2018-09-13 11:11:17 · 381 阅读 · 0 评论 -
cocos2dx基础篇(23) 粒子系统CCParticleSystem
【3.x】 (1)去掉“CC” (2)粒子位置模式 tPositionType 改为强枚举类型 ParticleSystem::PositionType::// ParticleSystem::PositionType::FREE //自由模式: 不与发射器联系,自己走自己的路线 ParticleSystem::PositionType::RELATIVE ...转载 2018-09-07 11:19:20 · 525 阅读 · 0 评论 -
cocos2dx基础篇(24) 场景切换效果CCTransitionScene
【3.x】 (1)去掉 “CC” (2)卡牌翻转 TransitionFlip 中的样式 tOrientation// //1: kCCTransitionOrientationLeftOver (左向右翻转) //2: kCCTransitionOrientationRightOver (右向左翻转) //3: kCCTransitionOrientationU...转载 2018-09-10 10:04:39 · 471 阅读 · 0 评论 -
cocos2dx基础篇(25) 简单碰撞检测
【3.x】 将数学类 CCPoint、CCRect 改为v3.x版本的 Vec2、Rect 就好了。 【简单碰撞检测】 在一些游戏中经常会遇到碰撞检测的情况,如愤怒的小鸟飞出去后,是否与石头发生碰撞。 虽然说有一个Box2D物理碰撞引擎,但是在这里还是需要掌握一下简单的碰撞检测方法。 (1)矩形与矩形 (2)圆与圆 (3)矩形与圆...转载 2018-09-12 14:56:03 · 753 阅读 · 0 评论 -
cocos2dx基础篇(22) 基本动画CCAnimation/CCAnimate
【小知识】 CCSpriteFrame :精灵帧。 它是相对动画而产生的,其实就是一张纹理图片。 CCAnimationFrame :动画帧。 由精灵帧与间隔帧数组成,是动画CCAnimation中的一帧。 CCSpriteFrameCache:精灵帧缓冲。用于存放精灵帧CCSpriteFrame的缓冲池。 CCAnimationCac...转载 2018-09-03 11:38:02 · 267 阅读 · 0 评论 -
Cocos2d-X多线程(4) 在子线程中进行网络请求
新版本的android系统已经不允许在UI线程中进行网络请求了,必须新建一个线程。 代码实操:头文件:#ifndef __TestThreadHttp_SCENE_H__#define __TestThreadHttp_SCENE_H__#include "cocos2d.h"#include "network\HttpRequest.h"#include "netwo...原创 2018-09-02 18:30:53 · 515 阅读 · 0 评论 -
Cocos2d-X多线程(3) cocos2dx中的线程安全
在使用多线程时,总会遇到线程安全的问题。cocos2dx 3.0系列中新加入了一个专门处理线程安全的函数performFunctionInCocosThread(),他是Scheduler类的一个成员函数:void Scheduler::performFunctionInCocosThread(const std::function<void ()> &function)当...原创 2018-09-02 18:28:41 · 584 阅读 · 0 评论 -
Cocos2d-X多线程(2) 线程的互斥量std::mutex和线程锁
多个线程同时访问共享资源时,经常会出现冲突等。为了避免这种情况的发生,可以使用互斥量,当一个线程锁住了互斥量后,其他线程必须等待这个互斥量解锁后才能访问它。thread提供了四种不同的互斥量:1、独占式互斥量non-recursive (std::mutex) 独占式互斥量加解锁是成对的,同一个线程内独占式互斥量在没有解锁的情况下,再次对它进行加锁这是不对的,会得到一个未定义行为。2、递...原创 2018-09-02 18:25:41 · 376 阅读 · 0 评论 -
Cocos2d-X多线程(1) 在cocos2d-x中使用多线程
教科书上说:进程是资源分配的最小单位,线程是CPU调度的最小单位。进程是程序在计算机上的一次执行活动。直观的讲就是会产生一个pid。int main(){ //业务逻辑代码 return 0;}当进入main函数时就会创建一个进程。线程是可执行代码的可分派单元。线程把一个进程分为很多片,每一片都可以是一个独立的流程。为什么使用多线程和多进程:为了实现并发执行,就是在...原创 2018-09-02 18:22:04 · 706 阅读 · 0 评论 -
Cocos学习
cocos2dx基础篇(基础模块 2.x)(1) Cocos2D-X项目创建(2) 第一个程序(3) 常用重要类(4) 标签CCLabel(5) 按钮(6) 定时器schedule/update(7) 触碰事件(8) 开关按钮CCControlSwitch(9) 滑块控件CCControlSlider(10) 按钮控件CCControlButton(11...原创 2018-09-01 00:40:53 · 813 阅读 · 0 评论 -
cocos2dx基础篇(27) 屏幕适配
【3.x】https://blog.csdn.net/qq_40338728/article/details/82964046 【屏幕适配】1、两个分辨率 1.1、窗口分辨率 在main.cpp中有个设置窗口分辨率的函数。该函数是设置了我们预想设备的屏幕大小,也就是应用程序窗口的大小。// eglView->setFrameSize(480, 320)...转载 2018-09-14 11:07:49 · 967 阅读 · 0 评论 -
cocos2dx基础篇(28) 布景层Layer的三个子类
【3.x】 (1)去掉 “CC”【CCLayerColor】 颜色布景层CCLayerColor有两个父类:CCLayerRGBA、CCBlendProtocol。相信有前面知识的积累,学到这也知道这两个类大致是干嘛的了。一个是颜色类,另一个是颜色混合协议。 所以CCLayerColor主要是在CCLayer类的基础上,扩展了三个属性: (1)修改图层背...转载 2018-09-14 22:31:01 · 181 阅读 · 0 评论 -
cocos2dx[3.2](7) 核心类Director/Scene/Layer/Sprite
【核心类】 导演Director、场景Scene、布景层Layer、精灵Sprite的概念请移步: cocos2dx基础篇(2) 第一个程序 导演控制场景,场景控制图层,图层控制精灵,精灵控制动作。 相互之间的关系框架如下图所示: 由此看出: (1)整个游戏一般只有一个导演。 (2)一个游戏可以由多个场景组成(菜单界面...转载 2018-10-11 09:53:45 · 185 阅读 · 0 评论 -
cocos2dx[3.2](11) 新事件分发机制
在2.x中处理事件需要用到委托代理(delegate),相信学过2.x的触摸事件的同学,都知道创建和移除的流程十分繁琐。 而在3.x中由于加入了C++11的特性,而对事件的分发机制通过事件分发器EventDispatcher 来进行统一的管理。 事件监听器主要有: > 触摸事件 : EventListenerTouchOneByOne、Event...转载 2018-11-09 09:59:18 · 305 阅读 · 0 评论 -
cocos2dx[3.2](10) 新回调函数std::bind
在2.x中处理事件需要用到委托代理(delegate),相信学过2.x的触摸事件的同学,都知道创建和移除的流程十分繁琐。 而在3.x中由于加入了C++11的特性,而对事件的分发机制通过事件分发器EventDispatcher 来进行统一的管理。 事件监听器主要有: > 触摸事件 : EventListenerTouchOneByOne、Event...转载 2018-10-25 10:40:48 · 216 阅读 · 0 评论 -
cocos2dx[3.2](9) 新回调函数std::bind
自从3.0引用了C++11标准后,回调函数采用的新的函数适配器:std::function、std::bind。 而曾经的回调函数menu_selector、callfunc_selector、cccontrol_selector等都已经被无情的抛弃了。 取而代之的则是一系列的CC_CALLBACK_*。 【致谢】 http://blog.csdn.n...转载 2018-10-19 10:18:03 · 143 阅读 · 0 评论 -
cocos2dx[3.2](6) 节点类Node
与2.x相比,节点类Node的属性和功能做了大幅度的修改与增加。 Node类是绝大部分类的父类(并不是所有的类,例如Director类是直接继承Ref类的),如Scene、Layer、Sprite以及精灵集合SpriteBatchNode等等等等的父类都是Node。 Node类包含了一些基本的属性、节点相关、Action动作的执行、以及定时器等相关的操作。 ...转载 2018-10-09 14:26:02 · 178 阅读 · 0 评论 -
cocos2dx[3.2](4) 入口类AppDelegate
这是游戏程序的入口,主要用于游戏程序的逻辑初始化,并创建运行程序的入口界面(即第一个游戏界面场景)。 里面有三个方法:// applicationDidFinishLaunching(); //逻辑初始化 applicationDidEnterBackground(); //切换到后台 applicationWillEnt...转载 2018-09-29 16:36:34 · 507 阅读 · 0 评论 -
cocos2dx[3.2](8) 数学类Vec2/Size/Rect
数学类Vec2、Size、Rect,是cocos2dx中比较常用的类。 比如设置图片位置,设置图片大小,两图片的碰撞检测等等。 比起2.x版本,在3.x中本质上其实没有太大的变化,主要的变化就是将全局宏定义相关的操作封装到各自的类中而已。比如:Vec2的向量运算宏定义ccp***(),现在都已经封装到Vec2类里面去了。 在V2.x中,底层数学库使用的是...转载 2018-10-15 08:47:23 · 230 阅读 · 0 评论 -
cocos2dx[3.2](5) 屏幕适配
1、两个分辨率 1.1、窗口分辨率 在AppDelegate.cpp中有个设置窗口分辨率的函数。该函数是设置了我们预想设备的屏幕大小,也就是应用程序窗口的大小。// glView->setFrameSize(480, 320);// 1.2、设计分辨率(可视区域) 在AppDelegate.cpp中也有个设置设计分辨率的函数。该函数是设置了我...转载 2018-10-08 10:01:22 · 259 阅读 · 0 评论 -
cocos2dx[3.2](3) 浅析CCDeprecated.h
CCDeprecated.h中存放的都是2.x将要被抛弃的命名规范,主要包含类名、枚举类型。 虽然说2.x的这些命名规范被CCDeprecated.h保留了。但是为了彻底学习3.x的新特性,就必须要尽量不要使用2.x的命名规范。 【CCDeprecated.h】1、主要的变更有以下几个方面 (1)去掉C++类的 "CC" 前缀 (2)去掉全局函数及...转载 2018-09-29 09:36:23 · 323 阅读 · 0 评论 -
cocos2dx[3.2](2) 3.x巨变
【v3.0 亮点】 > 使用 C++(C++11) 的特性取代了 Objective-C 的特性 > 优化了 Labels > 优化了渲染器(比 v2.2 更快) > 新的事件分发机制 > 物理引擎集成 > 新的 UI 对象 > 模板容器 > 使用 cocos2d...转载 2018-09-28 09:30:20 · 316 阅读 · 0 评论 -
cocos2dx[3.2](1) 浅析cocos2dx3.2引擎目录
3.x的引擎目录与2.x的引擎目录的差别是非常大的。3.x主要是将引擎的各个文件按照用途进行了分类,使得引擎目录结构更加清晰了。 从目录中我们主要了解一下以下几个文件:文件名 说明 build 官方编译的项目解决方案。 集中放在这个文件中,如cocos2d-win32.vc2012.sln、Debug.win32、win32-msvc-20...转载 2018-09-27 19:33:28 · 196 阅读 · 0 评论 -
Cocos2d-X网络编程(5) 使用Rapidjson解析数据
Json基础及28种c++解析库性能对比JSON 概念和特点: JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON 是轻量级的文本数据交换格式,类似 XML,但比 XML 更小、更快,更易解析 JSON 独立于语言 * JSON 具有自我描述性,更易理解 。 JSON的创建方式与创建 Jav...原创 2018-09-01 12:42:55 · 673 阅读 · 0 评论 -
Cocos2d-X网络编程(4) Cocos2d中的网络通信协议——Socket通信
Socket,俗称网络套接字,本身并不是协议,而是一个调用接口,是对TCP/IP协议的封装和应用,。提供了一系列方法方便开发者进行网络通讯。TCP/IP协议是使用最早的通讯协议,它是传输层协议,主要解决数据如何在网络中传输。Socket中又分为流模式与数据报模式,即TCP与UDP两种方式。 TCP : Transmission Control Protocol,传输控制协议,是面向连接的协...原创 2018-09-01 11:02:43 · 2257 阅读 · 0 评论 -
Cocos2d-X网络编程(3) Cocos2d中的网络通信协议——WebSocket协议
WebSocket protocol 是HTML5一种新的协议。它实现了浏览器与服务器全双工通信。实现浏览器与服务器的即时通讯。即服务器也能主动向客户端发消息。 WebSocket代理类和方法:cocos2d同样对websocket进行了封装。WebSocket和WebSocket::Delegate1:WebSocket: WebSocket类提供了跟websocket相关操...原创 2018-09-01 00:38:03 · 478 阅读 · 0 评论 -
cocos2dx基础篇(14) 滚动视图CCScrollView
【3.x】 (1)去掉 “CC” (2)滚动方向 > CCScrollViewDirection 改为强枚举 ScrollView::Direction// HORIZONTAL //只能横向滚动 VERTICAL //只能纵向滚动 BOTH //横向纵向都能滚动,默认方式// ...转载 2018-08-06 00:00:37 · 590 阅读 · 0 评论 -
cocos2dx基础篇(10) 按钮控件CCControlButton
【3.x】 (1)去掉 “CC” (2)对象类 CCObject 改为 Ref (3)按钮事件回调依旧为 cccontrol_selector ,没有使用 CC_CALLBACK_2 (4)按钮状态 CCControlState 改为强枚举 Control::State// NORMAL //正常 HIGH_LIG...转载 2018-08-01 09:37:15 · 265 阅读 · 0 评论 -
cocos2dx基础篇(9) 滑块控件CCControlSlider
【3.x】 (1)去掉 “CC” (2)对象类 CCObject 改为 Ref (3)CCControlEvent 改为强枚举 Control::EventType (4)CCControlEventValueChanged 改为 Control::EventType::VALUE_CHANGED (5)按钮事件回调依旧为 cccontrol_se...转载 2018-07-30 15:39:05 · 250 阅读 · 0 评论 -
cocos2dx基础篇(8) 开关按钮CCControlSwitch
【3.x】 (1)去掉 “CC” (2)对象类 CCObject 改为 Ref (3)标签类 LabelTTF 改为 Label (4)CCControlEvent 改为强枚举 Control::EventType (5)CCControlEventValueChanged 改为 Control::EventType::VALUE_CHANGED...转载 2018-07-30 11:25:09 · 333 阅读 · 0 评论 -
cocos2dx基础篇(7) 触碰事件
cocos2dx游戏引擎的重点是在于移动设备的跨平台开发,而移动设备上的游戏大部分都是通过屏幕触碰来进行的。比如主菜单的按钮触碰,打飞机中飞机的触碰移动,都需要用到触碰操作。想一想之前讲的菜单按钮CCMenu,菜单项的点击响应事件,其实就是触碰。 cocos2dx引擎中实现触碰的类CCTouchDelegate。而CCLayer类默认继承了CCTouchDelegate接口,所以...转载 2018-07-26 17:03:21 · 443 阅读 · 0 评论 -
cocos2dx基础篇(6) 定时器schedule/update
定时器在大部分游戏中是不可或缺的,即每隔一段时间,就要执行相应的刷新体函数,以更新游戏的画面、时间、进度、敌人的指令等等。cocos2dx为我们提供了定时器schedule相关的操作。其操作函数的定义在CCNode中,所以基本上大多数的引擎类都可以设置定时器,如CCLayer、CCSprite、CCMenu等。【本节内容】默认定时器 :scheduleUpdate()自定义定...转载 2018-07-24 10:08:28 · 371 阅读 · 0 评论 -
cocos2dx基础篇(5) 按钮
这篇是直接复制的别人的,太多了,难得写。。。【本节内容】CCMenu、CCMenuItem其具体的六个子类【菜单CCMenu】菜单CCMenu是用来装载菜单按钮的图层,图层中的子节点只能够是菜单项CCMenuItem或其子类。一般我们先创建菜单项CCMenuItem,然后使用一个或多个菜单项生成菜单CCMenu,最后把CCMenu加入当前图层。由于CCMenu的父类为CCLay...转载 2018-07-22 16:14:20 · 1107 阅读 · 0 评论 -
cocos2dx基础篇(4) 标签CCLabel
【本节内容】cocos2dx三种文字字体的显示:CCLabelTTF(一般字体)、CCLabelAtlas(自定义字体)、CCLabelBMFont(自定义字体)CCLabelTTF CCLabelTTF是最简单,使用最方便的字体类,可以使用.ttf格式的字体。因为使用的是.ttf格式的字体,所以只要是系统有的字体,我们都可以用,且可以不必放到资源文件夹中。系统的字体文件位置:C...原创 2018-07-18 17:13:19 · 578 阅读 · 0 评论 -
cocos2dx基础篇(3) 常用重要类
---------------------------------------- 入口类main.cpp 主要控制类AppDelegate.cpp ---------------------------------------- 对象类CCObject 节点类CCNode -------------------------------...原创 2018-07-17 15:57:40 · 3538 阅读 · 0 评论 -
cocos2dx基础篇(2) 第一个程序
【本节内容】 1、程序的基本组成:CCSprite(精灵)、CCLayer(层)、CCScene(场景)、CCDirector(导演) 2、分析HelloWorld源码。 一、基本组成cocos2d-x游戏引擎主要六个部分,分别为导演(CCDirector)、摄像机(CCCamera)、场景(CCScene)、布景(CCLayer)、精灵(CCSprit...原创 2018-07-17 15:03:34 · 2449 阅读 · 0 评论 -
cocos2dx基础篇(11) 点九图CCScale9Sprite
【3.x】 (1)去掉“CC”【v3.3】 我们在 ui模块 下实现了一个新的Scale9Sprite类。它的内部实现比之前的Scale9Sprite更为简洁,功能也更为强大。 重新实现这个类的主要的原因是:Scale9Sprite在UI模块被大量使用。 现在UI模块不再依赖于extension模块。 通过采用全新的 ui::Scale9Sprite ,...转载 2018-08-01 14:20:52 · 438 阅读 · 0 评论 -
cocos2dx基础篇(12) 编辑框之一CCTextFieldTTF
前面我们讲了精灵贴图、标签、菜单、按钮。感觉似乎少了点什么?UI控件里是不是应该还有一个很重要的控件——编辑框。在手机网游中,启动游戏,过了开场动画后,基本上显示的第一个界面应该就是游戏的登录界面了吧。输入用户名、密码什么的,这些都是需要借助编辑框来实现输入的。点击文本,弹出虚拟键盘,输入账号密码,点击登录。 cocos2dx引擎为我们提供了两类编辑框的控件: ...转载 2018-08-01 20:29:12 · 212 阅读 · 0 评论 -
cocos2dx基础篇(13) 编辑框之二CCEditBox
【3.x】 (1)去掉“CC” (2)设置虚拟键盘的编辑类型 > EditBoxInputMode 变为强枚举 EditBox::EditBoxInputMode// SINGLE_LINE //开启任何文本的输入键盘(不含换行) ANY //开启任何文...转载 2018-08-02 11:20:47 · 679 阅读 · 0 评论