02 2016 档案
cocos2dx+lua注册事件函数详解
摘要:coocs2dx 版本 3.1.1 registerScriptTouchHandler 注册触屏事件 registerScriptTapHandler 注册点击事件 registerScriptHandler 注册基本事件 包括 触屏 层的进入 退出 事件 registerScriptKeypad
阅读全文
我所理解cocos2d-x 3.6 lua --使用Cocos Studio
摘要:Cocos是触控科技推出的游戏开发一站式解决方案,包含了从新建立项、游戏制作、到打包上线的全套流程。 开发者可以通过cocos快速生成代码、编辑资源和动画,最终输出适合于多个平台的游戏产品。 Cocos的主要产品有Cocos Studio、Cocos2d-x(Cocos Framework)、Coc
阅读全文
quick-cocos2d-x学习笔记—定时器
摘要:定时器用的地方还是比较多的,游戏中的逻辑判断很多都是采用每帧执行。quick对于schedule的封装在scheduler这个lua文件中。如果是第一次接触quick的话,可能按照官方的api来写一个定时器被报错,提示schedule是一个nil值,这是因为其他的模块在初始化时都是被加载的,唯独这个
阅读全文
quick cocos 的scheduler 定时器
摘要:cocos2dx原生lua对于定时器的写法: 1.每帧调用: void scheduleUpdateWithPriority(int priority) void scheduleUpdateWithPriorityLua (int nHandler,int priority) 2.指定调用间隔时间
阅读全文
(11)UI布局和分辨率适配
摘要:一、Cocos编辑器 自动布局系统主要涉及固定与拉伸属性: 如图,总共可以修改控件的上下左右四个图钉和中间的两个拉伸条六个属性。 效果 1.当打开其中的任意一个图钉时,当前节点与父节点的对应边的距离即被固定。当父节点的大小修改时,当前节点与父节点对应边的距离总是不变。 2.当打开其中的任意两个相对的
阅读全文
(9)UI(容器)
摘要:1.基础容器 基础容器可以设置子容器布局、是否裁切子元素、填充颜色、背景图片资源等属性。 使用场景。 在官方示例中,大量使用了基础容器作布局管理,如下面的主界面中,用户名称,钻石和金币就使用了基础容器,以保证相对布局的统一: 场景1:如果不显示容器外的内容。 当容器上的控件有超出容器的部分时,可以通
阅读全文
(8)UI(控件)
摘要:1.按钮: 按钮是游戏中最常用的控件类型之一,控制用户点击事件的开关,有正常、按下、禁用三种状态,您可以为他们设置样式及文本。 使用场景 按钮的使用十分普遍,以官方示例中的主场景示例为例,画框的内容均是由按钮控件组成 在您的项目中,界面上方的等级、钻石、钱币也可以由按钮控件组成,当用户触摸时,跳转至
阅读全文
(7)UI(基础对象)
摘要:1.地图控件: 地图控件可支持导入Tiled地图编辑器导出的tmx格式文件,地图是制作游戏关卡地形图的控件,对于即时战略类型游戏的制作,为了使玩家流畅的切换游戏画面,经常会使用超过屏幕尺寸的地图。如果选择使用不用的背景图片切换场景,不仅造成资源浪费,加载速度也会变的很慢。 地图控件很好的解决了这一问
阅读全文
(7)基本工作流(使用AndroidStudio编辑Cocos项目)
摘要:接下来详细介绍一下如何使用Android Studio打开以及编辑cocos2d-x 3.10项目: 一、新建项目: 新建源代码项目,预编译库项目不支持使用Android Stduio打开,见图1: 图1:新建项目。 二、Android Studio下载与安装: 1)项目成功创建,如果未安装Andr
阅读全文
(6)基本工作流(使用外部编辑器)
摘要:Cocos 2d-x支持的所有外部工具,Cocos Studio也全部都支持,把这些外部的工具导出的数据,导入到资源面板,再配合上Cocos Studio现有的控件就可以使用了,下面介绍一下几种编辑器的使用方法。 1.Texture Packer 1)在商店里面下载Texture Packer,如下
阅读全文
(5)基本工作流(打包与运行环境配置)
摘要:完成以下操作,才能在编辑器中使用打包功能: 1、环境搭建(Win/Mac) 2、在编辑器中配置发布和打包设置 环境搭建&打包设置 一、Windows平台 注意:JDK、NDK、SDK、Framework的安装路径、电脑的系统变量配置、以及编辑器打包设置中这些工具的路径配置一定要都正确,任何一个地方不
阅读全文
(4)基本工作流(导出数据)
摘要:当使用Cocos Studio编辑好资源后,我们想在引擎里面使用,还需要发布。因为在Cocos Studio项目文件使用xml数据格式来进行存储,同时会保存一些仅编辑器需要的额外数据,如果用户使用Cocos2d-x和Cocos2d-js直接加载项目文件,会发现项目文件不仅大而且加载速度慢,所以我们需
阅读全文
(3)基本工作流(制作合图)
摘要:1、新建合图 新建合图文件可以通过三种方式: 1)在工具栏点击新建文件图标 2)在弹出新建文件窗口后,选择“合图”,点击新建按钮; 3)在资源面板取图片资源,拖拽至画布面板。目前仅图片类型(.png和.jpg)资源。如下图: 4)可通过属性面板修改合图类型文件的属性,如下图: 尺寸:当前合图的尺寸,
阅读全文
(2)基本工作流(制作场景与UI)
摘要:1、认识cocos编辑器主界面。 2、制作新场景: 1)打开我们新建的HelloCocos项目,新建场景名称为“Scene”,如下图: 2)点击新建,场景就被创建出来了,如下图: 3)右键“资源面板”,选择“导入资源。。”,选择要导入的资源,如下图: 4)导入了Common、LevelSelectt
阅读全文
(1)了解cocostudio基础
摘要:操作界面 Cocos Studio的界面主要分为菜单栏、工具栏、对象面板、资源面板、画布面板、属性面板、动画面板、输出窗口、状态栏九部分组成,如下图: 菜单栏 菜单栏为Cocos Studio提供了功能入口,它由文件、编辑、视图、项目、窗口、语言、帮助7个命令菜单组成,Mac和Windows菜单项中
阅读全文
(27)Cocos2d-x 3.0 Json用法
摘要:Cocos2d-x 3.0 加入了rapidjson库用于json解析。位于external/json下。 rapidjson 项目地址:http://code.google.com/p/rapidjson/wiki:http://code.google.com/p/rapidjson/wiki/U
阅读全文
(28)Cocos2d-x xml解析
摘要:Cocos2d-x 已经加入了tinyxml2用于xml的解析。3.0版本位于external/tinyxml2下。2.x版本位于cocos2dx/support/tinyxml2下。 tinyxml2 Github地址:https://github.com/leethomason/tinyxml2
阅读全文
(26)SQLite集成与用法
摘要:概述 在Cocos2d-x中,简单数据存储,可以使用UserDefault。那么如何存储大量,不规则的数据?我们可以使用SQLite数据库存储数据。SQLite是使用非常广泛的嵌入式数据库,它有小巧 、高效、跨平台、开源免费和易操作的特点。 SQLite数据库是使用C语言来编写的,那么在Cocos2
阅读全文
(25)HttpClient session
摘要:session概述 session机制 session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。 当程序需要为某个客户端的请求创建一个session的时候,服务器首先检查这个客户端的请求里是否已包含了一个session标识 - 称为session
阅读全文
(24)如何使用HttpClient
摘要:介绍 HttpClient是HTTP客户端的接口。HttpClient封装了各种对象,处理cookies,身份认证,连接管理等。 概念 HttpClient的使用一般包含下面6个步骤: 创建 HttpRequest 的实例; 设置某种连接方法的类型(GET、POST等),这里通过setUrl传入待连
阅读全文
(23)事件分发机制
摘要:新事件分发机制:在2.x 版本事件处理时,将要触发的事件交给代理(delegate)处理,再通过实现代理里面的onTouchBegan等方法接收事件,最后完成事件的响应。而在新的事件分发机制中,只需通过创建一个事件监听器-用来实现各种触发后的逻辑,然后添加到事件分发器_eventDispatcher
阅读全文
(22)如何优化内存使用
摘要:如何优化内存使用 内存优化原理 为优化应用内存使用,开发人员首先应该知道什么最耗应用内存,答案就是纹理! 纹理几乎会占据90%应用内存。所以尽量最小化应用的纹理内存使用,否则应用很有可能会因为低内存而崩溃。 本文介绍Cocos2d-x游戏通用的两条内存优化原理指导。 认识瓶颈寻找方案 什么样的纹理最
阅读全文
(21)纹理缓存(Texture Cache)
摘要:简介 纹理缓存是将纹理缓存起来方便之后的绘制工作。每一个缓存的图像的大小,颜色和区域范围都是可以被修改的。这些信息都是存储在内存中的,不用在每一次绘制的时候都发送给GPU。 CCTextureCache Cocos2d通过调用CCTextureCache或者CCSpriteFrameCache来缓存
阅读全文
(20)Cocos2d-x中的引用计数(Reference Count)和自动释放池(AutoReleasePool)
摘要:引用计数 引用计数是c/c++项目中一种古老的内存管理方式。当我8年前在研究一款名叫TCPMP的开源项目的时候,引用计数就已经有了。 iOS SDK把这项计数封装到了NSAutoreleasePool中。所以我们也在Cocos2d-x中克隆了一套CCAutoreleasePool。两者的用法基本上一
阅读全文
(19)声音与音效
摘要:声音和音效 Cocos2d-x提供了对声音和音效的支持,能够十分方便地实现音乐与音效的播放、暂停和循环功能。 使用音效引擎 我们可以使用Cocos2d-x自带的CocosDension库来使用声音引擎。CocosDesion实现了简单易用的SimpleAudioEngine类,为了使用它,我们只需引
阅读全文
(18)数据结构
摘要:cocos2d::Vector v3.0 beta加入 定义在"COCOS2DX_ROOT/cocos/base"的"CCVector.h"头文件中。 template<class T>class CC_DLL Vector; cocos2d::Vector<T>是一个封装好的能动态增长顺序访问的容
阅读全文
(17)ClippingNode的使用
摘要:概述 ClippingNode(裁剪节点)可以用来对节点进行裁剪,可以根据一个模板切割图片的节点,生成任何形状的节点显示。 ClippingNode是Node的子类,可以像普通节点一样放入Layer,Scene,Node中。 ClippingNode 原理: ClippingNode是利用模板遮罩来
阅读全文
(16)Cocos2d-x 多分辨率适配完全解析
摘要:Overview 从Cocos2d-x 2.0.4开始,Cocos2d-x提出了自己的多分辨率支持方案,废弃了之前的retina相关设置接口,提出了design resolution概念。 3.0中有以下相关接口: Director::getInstance()->getOpenGLView()->
阅读全文
(15)如何使用Cocos2d-x 3.0制作基于tilemap的游戏:第三部分(完)
摘要:引言 程序截图: 在第二部分教程中,Ray教大家如何在地图中制作可碰撞的区域,如何使用tile属性,如何制作可以拾取的物品以及如何动态修改地图、如何使用“Heads up display”来显示分数。 在这个教程中,我们将加入敌人,这样的话,你的忍者就可以向它们扔飞镖啦,同时还增加了胜利和失败的游戏
阅读全文
(14)如何使用Cocos2d-x 3.0制作基于tilemap的游戏:第二部分
摘要:引言 程序截图: 这篇教程是《如何使用Cocos2d-x 3.0制作基于tilemap的游戏》的第二部分。在上一个教程中,我们创建了一个简单的基于tiled地图的游戏,里面有一个忍者在沙漠里寻找可口的西瓜! 在第一部分教程中,我们介绍了如何基于tiled创建地图,怎样把地图增加到游戏中去,以及如何滚
阅读全文
(13)如何使用Cocos2d-x 3.0制作基于tilemap的游戏:第一部分
摘要:引言 程序截图: 本教程将会教大家如何使用Cocos2d-x来做一个基于tile地图的游戏,当然还有Tiled地图编辑器。(我们小时候玩的小霸王小学机里面的游戏,大部分都是基于tile地图的游戏,如坦克大战、冒险岛、吞食天地等)我们将会创建一个忍者在沙漠中找西瓜吃的小游戏。 在第一部分教程中,我将教
阅读全文
(12)瓦片地图
摘要:在游戏开发过程中,我们会遇到超过屏幕大小的地图,例如即时战略游戏,使得玩家可以在地图中滚动游戏画面。这类游戏通常会有丰富的背景元素,如果直接使用背景图切换的方式,需要为每个不同的场景准备一张背景图,而且每个背景图都不小,这样会造成资源浪费。 瓦片地图就是为了解决这问题而产生的。一张大的世界地图或者背
阅读全文
(11)粒子系统
摘要:简介 粒子系统是指计算机图形学中模拟特定现象的技术,它在模仿自然现象、物理现象及空间扭曲上具备得天独厚的优势,为我们实现一些真实自然而又带有随机性的特效(如爆炸、烟花、水流)提供了方便。Cocos2d-x引擎中就为我们提供了强大的粒子系统,以下是粒子系统的继承关系图: 粒子属性 一个强大的粒子系统它
阅读全文
(10)场景转换(Transitions)
摘要:Cocos2d-x最爽的一个特性之一就是提供了在两个不同场景之间直接转换的能力。例如:淡入淡出,放大缩小,旋转,跳动等。从技术上来说,一个场景转换就是在展示并控制一个新场景之前执行一个转换效果。 场景之间通过TransitionScene系列类来实现过渡跳转的效果。TransitionScene继承
阅读全文
(9)SpriteFrameCache和TextureCache
摘要:简介 SpriteFrameCache 主要服务于多张碎图合并出来的纹理图片。这种纹理在一张大图中包含了多张小图,直接通过TextureCache引用会有诸多不便,因而衍生出来精灵框帧的处理方式,即把截取好的纹理信息保存在一个精灵框帧内,精灵通过切换不同的框帧来显示出不同的图案。 SpriteFra
阅读全文
(8)序列帧动画
摘要:简介 Cocos2d-x中,动画的具体内容是依靠精灵显示出来的,为了显示动态图片,我们需要不停切换精灵显示的内容,通过把静态的精灵变为动画播放器从而实现动画效果。动画由帧组成,每一帧都是一个纹理,我们可以使用一个纹理序列来创建动画。 我们使用Animation类描述一个动画,而精灵显示动画的动作则是
阅读全文
(7)
摘要:原理介绍 动作类(Action)是所有动作的基类,它创建的一个对象代表一个动作。动作作用于Node,因此每个动作都需要由Node对象执行。动作类(Action)作为基类,实际上是一个接口,动作类的大多数实现类都派生于有限时间动作类(FiniteTimeAction)。 在实际开发中我们通常用到两类动
阅读全文
(6)Cocos2d-x 3.0坐标系详解
摘要:Cocos2d-x坐标系和OpenGL坐标系相同,都是起源于笛卡尔坐标系。 笛卡尔坐标系 笛卡尔坐标系中定义右手系原点在左下角,x向右,y向上,z向外,OpenGL坐标系为笛卡尔右手系。 屏幕坐标系和Cocos2d坐标系 标准屏幕坐标系使用和OpenGL不同的坐标系,而Cocos2d则使用和Open
阅读全文
(5)调度器(scheduler)
摘要:继承关系 原理介绍 Cocos2d-x调度器为游戏提供定时事件和定时调用服务。所有Node对象都知道如何调度和取消调度事件,使用调度器有几个好处: 每当Node不再可见或已从场景中移除时,调度器会停止。 Cocos2d-x暂停时,调度器也会停止。当Cocos2d-x重新开始时,调度器也会自动继续启动
阅读全文
(4)基础概念介绍——导演、场景、层、精灵
摘要:在Cocos2d-x-3.x引擎中,采用节点树形结构来管理游戏对象,一个游戏可以划分为不同的场景,一个场景又可以分为不同的层,一个层又可以拥有任意个可见的游戏节点(即对象,游戏中基本上所有的类都派生于节点类Node)。可以执行Action来修改游戏节点的属性,使其移动、旋转、放大、缩小等等。 每一个
阅读全文
(3)在Windows7上搭建Cocos2d-x
摘要:工具准备 搭建开发环境需要安装工具包括 Visual Studio python ———(本教程以python2.7.3版本为例),下载地址:http://www.python.org/download/releases/2.7.3/。 Cocos2d-x ———(本教程以cocos2d-x-3.0
阅读全文
(2)Mac环境搭建
摘要:创建HelloWorld项目 将刚才下载的压缩包解压到你指定的文件夹里。 进入到目录cocos2d-x-3.2alpha0/tools/cocos2d-console/bin/cocos.py 打开终端运行cocos.py脚本创建文件 ./cocos.py new HelloWorldDemo -p
阅读全文
(1)架构和目录结构
摘要:1. Cocos2d-x 1.1 架构 1.2目录结构 从github下载Cocos2d-x repo资源包后,或解压稳定版ZIP压缩包后,就会看到如下的目录结构: 目录名称说明 CocosDenshion 音频支持。注意:Android平台中背景音乐和短音效所使用的系统API不同。 cocos2d
阅读全文
lua实现单例模式
摘要:Singleton = {} function Singleton:new(o) o = o or {} setmetatable(o,self) self.__index = self return o end function Singleton:Instance() if self.insta
阅读全文