![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
cocos学习笔记
凛冽寒風
时间并不会因为你的迷茫和迟疑而停留,就在你看这篇文章的同时,不知道有多少人在冥思苦想,在为算法废寝忘食,不知道有多少人在狂热地拍着代码,不知道又有多少提交一遍又一遍地刷新着OJ的status页面……
没有谁生来就是神牛,而千里之行,始于足下!
展开
-
CVP认证学习笔记--李天宇001添加文字层
本次课程我学习到了如何添加文字,通过LabelTTF这个类创建了文字,其中包含了3个参数,文字、字体、字体大小。创建好后,将文字设置好坐标,把它添加到父节点上。添加完毕。原创 2016-06-24 23:16:56 · 245 阅读 · 0 评论 -
CVP认证学习笔记--李天宇023使用animationEditor编辑骨骼动画
本节课主要通过学习使用骨骼动画监听器setMovementEventCallFunc,来实现点击屏幕使船长进行攻击动画的播放后执行走路动画。简单的说一下我的思路:首先加载骨骼动画,通过ccs.armatureDataManager.addArmatureFileInfo这个函数。然后new一个动画层,通过new Armature()。然后getAnimation().play(“动画名字”);原创 2016-06-29 01:14:25 · 710 阅读 · 0 评论 -
CVP认证学习笔记--李天宇022使用animationEditor编辑帧动画
本节课主要学习了如何使用Animation Editor制作帧动画和如何在cocosjs环境下加载这些帧动画。首先通过查阅资料:添加骨骼文件信息,由骨骼数据管理器管理。采用ccs.ArmatureFileInfo这个类添加动画文件,然后添加动画层,然后播放哪一帧的动画。当然在此之前一定要在我们的配置文件中加入”extensions”,只有加入这个才可以用cocostudio的内容......还原创 2016-06-29 01:13:47 · 525 阅读 · 0 评论 -
CVP认证学习笔记--李天宇021纹理打包文件读取
通过使用打包纹理工具,发布成功了.png和.plist文件。使用非常简单方便。本节课是用通过打包好的plist文件,一次性读取,减少io,实现高效率.用cc.SpriteFrameCache实现添加动画帧,然后循环遍历,并添加到数组中。然后获取每帧的name。最后通过一个空sprite来runaction这个动画。具体代码如下: var HelloWorldLayer = cc.Layer原创 2016-06-29 01:12:59 · 547 阅读 · 0 评论 -
CVP认证学习笔记--李天宇020实现切图帧动画
帧动画的切换实际上是把所需要的帧动画放在一个缓存器里.首先创建数组,用textureCache添加图片到缓存中。然后添加帧序列,将序列添加到数组中。部分代码如下:ctor:function () { this._super(); //添加背景 var bg=new cc.Sprite(res.bg_jpg); this.addC原创 2016-06-29 01:12:31 · 415 阅读 · 0 评论 -
CVP认证学习笔记--李天宇019实现帧动画处理
首先先总结一下帧动画的步骤:①sprite②animation③animate④sprite.runAction 下面让我们来看一下具体的实现步骤:var HelloWorldLayer = cc.Layer.extend({ ctor:function(){ this._super(); var size = cc.winSize;原创 2016-06-29 01:11:38 · 348 阅读 · 0 评论 -
CVP认证学习笔记--李天宇011节点的Action
本节课学习到了节点的Action。Action有很多种,如:RotateTo,RotateBy,MoveBy,MoveTo,Skewto,SkewBy,JumpTo,jumpBy等。每个动作所包含的参数也是不一样的。但是都包括了执行时间和目标位置的坐标。下面是我本节课的代码:var HelloWorldLayer = cc.Layer.extend({ sprite:原创 2016-06-29 00:59:36 · 288 阅读 · 0 评论 -
CVP认证学习笔记--李天宇018spriteBatchNode使用
SpriteBatchNode是批处理节点,他通过一次opengl调用绘制所有子节点。那么下面我们来看一下怎么来绘制?SpriteBatchNode是一次性绘制,它只有当Sprite使用的纹理与SpriteBatchNode一样时才能添加为其子节点。并且只有sprite的子类或者子类实例化对象才能添加到SpriteBatchNode上。核心代码如下:switch(obj.tag){原创 2016-06-29 01:11:02 · 445 阅读 · 0 评论 -
CVP认证学习笔记--李天宇017图片加载的进度实现
本节课的内容是实现一个进度条。与之前学习的内容有着密切的联系。首先是需要通过cc.DrawNode绘制一个节点,画一个四边形。然后通过cc.textureCache.addImageAsync实现异步加载。通过查询API,得知异步加载指定的纹理文件。如果文件图像先前没有被加载,它将创建一个新的 Texture2D 对象。 否则它将会在一个新线程加载纹理,加载完成时,Texture2D 对象原创 2016-06-29 01:09:54 · 540 阅读 · 0 评论 -
CVP认证学习笔记--李天宇016使用纹理缓存创建精灵
对于纹理的合理使用,可以降低IO的消耗,因此通过这节课后,以后加载精灵,最好都使用TextureCache.addImage();这样下次使用时将直接返回该纹理。引用之前加载的纹理可以减少GPU 与CPU 的内存消耗。顺便复习了一下上周学习的内容单点触摸和动作。附上API链接供参考:http://api.cocos.com/cn/de/d33/classcocos2d_1_1_textur原创 2016-06-29 01:09:19 · 277 阅读 · 0 评论 -
CVP认证学习笔记--李天宇015实现绘图节点
本节课我学习了如何绘制节点,作业的内容是画一个五角星,运用的函数为DrawNode.它继承自node。摘自:http://api.cocos.com/cn/dd/d6a/classcocos2d_1_1_draw_node.html#details 下面是我的核心代码:首先我创建了一个专门画节点的类var star = cc.DrawNode.extend({ cto原创 2016-06-29 01:08:26 · 376 阅读 · 0 评论 -
CVP认证学习笔记--李天宇014点击英雄
本节课的内容是点击英雄然后在场景中添加一个label,使其分数每次加10。通过这次的作.业又将之前的label相关的知识又进行了回顾。和单点触摸知识的回顾,分数累加的代码应该在ontouchbegan这个函数中进行,因为每点击一下就要加10。后来查阅相关API运用到了label.setString这个函数。刚开始的label是个静止的”0”。那么想让它进行累加,就要把它单拿出来,然后将分数赋给原创 2016-06-29 01:04:52 · 275 阅读 · 0 评论 -
CVP认证学习笔记--李天宇013在Node的生命周期和图层种处理触摸
本节课学习的内容是单点触摸的内容。通过本节课的学习,在以后的做游戏的过程中,可以更加的方便。核心代码如下:cc.eventManager.addListener({ event:cc.EventListener.TOUCH_ONE_BY_ONE, swallowTouches:true, onTouchBegan:t原创 2016-06-29 01:02:57 · 301 阅读 · 0 评论 -
CVP认证学习笔记--李天宇024粒子编辑器和粒子动画
本章节学习到了如何使用粒子系统,但是在开发的项目中,我们不会经常使用到,大多时候回将粒子转成帧动画进行播放,降低IO消耗,从而节约开发的成本。直接呈上代码:var HelloWorldLayer = cc.Layer.extend({ sprite:null, ctor:function () { this._super(); var si原创 2016-06-29 01:15:06 · 282 阅读 · 0 评论 -
CVP认证学习笔记--李天宇025添加音乐和音效
这节课,主要讲述的是如何播放一段音乐和播放音效。一般加背景音乐是在onEnter函数里边加。而本节课我们实现的是通过点击屏幕产生音效播放效果,并让背景音乐循环播放。本章节比较容易只需要用到两个函数:①cc.audioEngine.playmusic(“音乐的路径”,是否循环) ②cc.audioEngine.playEffect(“音乐原创 2016-06-29 01:15:37 · 377 阅读 · 0 评论 -
CVP认证学习笔记--李天宇026对数组的使用
本节主要通过对数组的使用,实现了节点的添加和删除,因为是在javascript的语法基础上进行了升华,所以不是很难。下面是本节的内容:首先先创建一个数组用来存放相关节点。往数组的末尾添加元素用的是push方法。在最前边添加元素用的是unshift方法,这个方法会返回一个新长度。删除最后边的元素用的是pop方法。删除指定位置后的几个元素用的是splice(x,y);第一个参数代表下标,第二个元素原创 2016-06-29 01:16:25 · 391 阅读 · 0 评论 -
CVP认证学习笔记--李天宇002添加图片层
今天学习了Cocos2d-js,如何添加图片层。首先在Resource.js文件添加一个图片数组供预加载图片文件,提高游戏运行效率,不用每次都加载。然后在初始化方法中添加这个图片,把图片设置坐标,并添加到它的父节点上,如此,就添加成功。这就是本次课我的收获。原创 2016-06-24 23:18:10 · 330 阅读 · 0 评论 -
CVP认证学习笔记--李天宇003实现文本菜单层
这是正式课的第一节,代码量也随之增加,这也在预料之中。下面是我本节课的心得体会。 这回我们先从头分析一下app.js这个文件。它主体包含两部分内容,一部分是Layer图层,一部分是Scene场景。那我们要添加的精灵、菜单这些内容都应该放到Layer中。然后将Layer添加到Scene中,这是一个总体流程。那我们本节课的修改内容就在这个ctor函数中进行添加代码的任务即可完成。首先我创建了一个l原创 2016-06-24 23:19:03 · 323 阅读 · 0 评论 -
CVP认证学习笔记--李天宇004实现自定义场景
本节课我学习了如何创建一个场景。本节课算真正意义上理解了src文件夹的真面目~。让我们一起来新建一个场景吧! 首先要搞清楚进入场景的入口在哪里?在main.js这个文件中。有一个函数名为cc.game.onStart。这个function中:cc.view.setDesignResolutionSize(800,450,cc.ResolutionPolicy.SHOW_ALL); 上述原创 2016-06-24 23:20:09 · 322 阅读 · 0 评论 -
CVP认证学习笔记--李天宇005实现多场景切换
今天的作业是场景的相互切换。我是通过点击菜单实现的,首先得体会是:今天的代码量比昨天又多了~..下面进入正题。 这节课的内容其实和上节课的创建一个场景是有关联的。因为我们要手动创建2个场景,一个是帮助场景,一个是开始场景。所以昨天做的cc.Layer.extend和cc.Scene.extend那一串代码还是必须的。并且需要创建多个.js文件来存放场景和图层。但是为了方便起见,我们再app.j原创 2016-06-24 23:21:07 · 296 阅读 · 0 评论 -
CVP认证学习笔记--李天宇006场景切换特效
本节课学习的是场景切换的特效。首先我们先了解一下过度场景的来由。我通过查阅,这里附上链接:http://api.cocos.com/cn/de/d48/classcocos2d_1_1_transition_move_in_l.html。得知这些过度场景动画都继承自TransitionScene这个类。而这个类又继承自Scene类。 这章节的内容和上一节的内容大致相同,重复的代码这里原创 2016-06-24 23:22:09 · 311 阅读 · 0 评论 -
CVP认证学习笔记--李天宇007节点的锚点和坐标
本节课程我学到了锚点的概念,我们setPosition都是相同的位置的情况下,但是通过锚点的设定,导致最终的位置不同。是因为我们设置的中心点的不同,所导致的。我通过查询api知道了准确的官方定义。附上链接:http://api.cocos.com/cn/d3/d82/classcocos2d_1_1_node.html#abf77210f31f01d0f564600c94c90e2be本节原创 2016-06-24 23:24:47 · 329 阅读 · 0 评论 -
CVP认证学习笔记--李天宇008Node的父子关系
本节课是继上堂课内容后,继续深入的一课。在上节课的基础上,我为每个数字都绘制了一个背景。让背景成为每个数字的父节点,并将数字添加到背景上。核心代码如下: //数字5的背景 var bg3 = new cc.LayerColor(cc.color(0,0,0,255),100,200); bg3.ignoreAnchorPointForPosit原创 2016-06-24 23:26:06 · 331 阅读 · 0 评论 -
CVP认证学习笔记--李天宇009节点的缩放和旋转
通过本节课,我学到了如何使节点进行旋转和缩放。主要是通过node.setScale()和node.setRotation()。我通过查阅官网API。得知:setScale的缩放因子将会乘以该节点和它子节点的宽,高和深度。setRotation设置节点的旋转(angle)角度。0是默认的旋转角度。 负数顺时针旋转节点,正数逆时针旋转节点。以上是我通过查阅资料得知的。下面附上部分核心代码:原创 2016-06-24 23:27:24 · 653 阅读 · 0 评论 -
CVP认证学习笔记--李天宇010节点的计划任务
本节课的学习内容是节点的计划任务。我通过翻阅API。var schedule(var selector,var interval,var repeat,var delay)指定一个以秒为单位的时间间隔并定义一个自定义选择器。本节课的作业是通过点击一个按钮实现一个让node进行旋转和暂停的实验。我的代码如下: var HelloWorldLayer = cc.La原创 2016-06-24 23:28:13 · 437 阅读 · 0 评论 -
自定义C++类注册到Lua环境中遇到的问题
1、python yaml cheet 保证都是32位2、遇到错误location = ,details = "use of undeclared identifier '_aligned_malloc'">在你的ini文件修改clang_flags = -nostdinc -x c++ -std=c++11 -U __SSE__ 主要是加上 -U __SSE__3原创 2016-07-07 01:39:01 · 770 阅读 · 0 评论 -
CVP认证学习笔记--李天宇027对资源的管理
本节学习了cocos的资源加载,这次更改了CCLoaderScene里的代码(也可以在自己新建一个类定义载入界面,这里为了方便起见),将载入界面的外观进行了修改,并且在此基础上实施了纹理的添加cc.textureCache.addImage()和删除纹理cc.textureCache.dumpCachedTextureInfo()。下边是CCLoaderScene里的部分代码:首先是ini原创 2016-07-07 01:43:16 · 442 阅读 · 0 评论 -
CVP认证学习笔记--李天宇012组合动作
组合动作是继上一节的内容后的进一步扩展,cc.sequence(动作1,动作2,动作3);那么这里需要注意的是每个动作都会按顺序依次进行执行。如果需要同时执行2个动作,那么需要用到cc.spawn(动作1,动作2);上节忽略了一个问题那就是有的是To而有的是By,这里说一下他们之间的区别那就是一个绝对,一个是相对!。To可以通俗意义上理解为到哪个点的意思,是以左下角为基准点进行移动。而by则是在节原创 2016-06-29 01:01:22 · 479 阅读 · 0 评论