自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

寒風的专栏

想学,什么时候学都不晚.

  • 博客(72)
  • 收藏
  • 关注

原创 寒風的Cocos之旅之Lua篇---2048移动块的机制

用Lua又写了遍2048.这回发现比之前写的更快了。在上下左右移动块的上边,例如像左移动:那么需要遍历的则是x轴方向。并且是跟移动方向相反的向右进行遍历。此时定义一个对象,记录向右遍历的第i个的值,记录后将此值赋给它左边的那个值(这里说的通俗些,坑了勿喷!)最后代码呈上。有需要的可留言,可以找我要代码一起学习。function GameScene:leftCombineNumber()

2016-01-25 12:19:06 672

原创 指针链表总结

重新看了一遍链表。发现自己还有很多不足。1⃣️搞清楚了结构体指针。指针变量->成员。2⃣️typedef是用来定义一个新的名字,例:typdef char Elemtype。以后就可以直接用Elemtype来当做char来定义。

2016-01-25 10:28:08 326

原创 寒風的Cocos之旅之Lua篇---全局变量的妙用

言简意赅的描述一下:如果想在A类中调用B类中的C方法。首先要在A类中的ctor方法中定义self.XXXX。这样XXXX就是全局变量了,在任何地方都可以创建一个对象出来。那么需要调用这个对象的方法时,就可以使用它了。

2016-01-25 10:26:08 1383

原创 寒風的Cocos之旅之C++篇---drawNode用法

auto s = Director::getInstance()->getWinSize();        auto draw = DrawNode::create();    addChild(draw, 10);        // Draw 10 circles//    画同心圆    for( int i=0; i     {

2015-10-07 23:28:25 724

原创 寒風的Cocos之旅C++篇----Cocos2d-x应用代理

应用代理和它的名字一样,它代表整个程序,并且整个程序里只有唯一一个实体,也就是说一个cocos2dx程序只会有一个应用代理。这货负责程序的初始化工作和处理待机时的事务,在vs工程里和磁盘上一般都能找到它的正体,名字是AppDelegate.h和AppDelegate.cpp。这家伙的存在感简直低到了一定境界,因为一般我们很少会去修改它,默认的设置就能满足我们的需求。很有可能

2015-10-07 22:06:53 485

原创 寒風的Cocos之旅之C++篇REATE_FUNC宏的解析

对cocos有了解的人,都应该对CREATE_FUNC这个宏不陌生,那么今天寒風为大家解析一下这个函数。首先我们看看里边的源代码:/** * define a create function for a specific type, such as CCLayer * @__TYPE__ class typ

2015-10-06 18:30:37 518

原创 寒風的Cocos之旅之游戏获取最高分

从今天起寒風的旅途由cocos2d-x变为Cocos了。因为时代在进步。。。好了废话不多说,下面进入正题。    我们在做飞机大战等一系列小游戏中,会遇到最高分问题。那么这时候我们有两种选择,一种是连数据库,一种是用UserDefault。    在这里,我用我的代码为大家说明:    //分数 auto labelScore=Label::createWithSystemFont(

2015-10-04 16:20:17 1050

原创 寒風的Cocos之旅C++篇之进度条的使用

首先进度条的作用在游戏中充当着重要的角色。如:人物的血条、计时的时间条、小怪的血量等,它以一种直观的形态呈现在我们的视野当中,话不多说,直接上货了。         //进度条背景 Sprite *progressbgSprite; progressbgSprite = Sprite::create("bonusbar.png") ; //progressbgSprit

2015-09-30 10:38:33 527

原创 寒風的Cocos2d之旅之如何实现屏幕滚动

核心代码如下:auto sp1=new Sprite("文件路径");sp1->setAnchorpoint(Vec2::ZERO);sp1->setPosition(0,0);sp1->setTag(101);this->addChild(sp1);auto sp2=new Sprite("文件路径");sp2->setAnchorpoint(Vec2::ZERO);sp2

2015-09-16 21:44:06 630

转载 cocos2d-x 3.2 在window平台vs2012下解决中文乱码问题

void WStrToUTF8(std::string& dest, const std::wstring& src){      dest.clear();        for (size_t i = 0; i         wchar_t w = src[i];          if (w             dest.push_back((char)w); 

2015-06-18 11:16:35 432

原创 寒風的Cocos2dx之旅之Vector用法

通过一天的时间看Vector,其实Cocos的Vector跟C++的区别在于前者可以自动释放空间,后者需要自行手动释放。下面来为大家介绍一下Vector的用法吧。Vector它是一个模板类,就是一个动态数组,只不过Vector功能更为强大,所以我们经常用它来在程序中使用。尖括号里 对象名称;         在创建完一个对象后,我们就要根据我们的需要,来添加、删除、替换等操作。添加的方法有:v

2015-04-13 22:53:40 1824

原创 架构思想

今天第一天接数据统计SDK,没有任何经验。自己看了代码后,知道了最终调哪个函数.就去问前辈,说了一下自己的想法。然后在调用过程中,遇到了一点问题,前辈的意思是:你站在游戏的角度去服务供应商。先把每个空数据采集接口写好,然后在需要的地方去调用它,如果成功再进行下一步。切记不要先写好一个再写一个,这样会非常混乱。要逐层写,不要一个一个写。

2016-09-06 16:56:10 495

原创 Cocos_Lua如何调整模拟器大小以及分辨率

通过上网查找资料和自行研究,其实设置cocos lua的屏幕适配还是比较容易的.我用的是VS2013跑的cocoslua项目工程.所以在Classes里边找到CodeIDESupport.h文件,修改#define CC_CODE_IDE_DEBUG_SUPPORT 的值为1。之后运行你会发现当你右键模拟器的时候,有个视图里边可以选择模拟器的尺寸大小.是不是很方便呢~。如果想修改屏幕的分辨率就在c

2016-08-04 10:04:33 4662

转载 mac快捷键

Mac OSX 快捷键&命令行一.Mac OSX 快捷键ctrl+shift                                    快速放大dock的图标会暂时放大,而如果你开启了dock放大Command+Option+W                将所有窗口关闭Command+W

2016-08-02 10:08:44 417

原创 Cocos2dx中的一些设计到内存管理的宏

宏描  述CC_SAFE_DELETE(p)使用delete操作符删除一个C++对象p,如果p为NULL,则不进行操作CC_SAFE_DELETE_ARRAY(p)使用delete[]操作符删除一个C++数组p,如果p为NULL,则不进行操作CC_SAFE_FREE(p)使用free()函数删除p,如果p为NULL,则

2016-07-21 17:11:22 413

原创 虚函数与纯虚函数的区别

今天接触到了虚函数,所以在这里做一下总结:1. 虚函数和纯虚函数可以定义在同一个类(class)中,含有纯虚函数的类被称为抽象类(abstract class),而只含有虚函数的类(class)不能被称为抽象类(abstract class)。  2. 虚函数可以被直接使用,也可以被子类(sub class)重载以后以多态的形式调用,而纯虚函数必须在子类(sub cla

2016-07-21 16:55:57 454

原创 如何将本地代码上传至git仓库

首先我们在需要提交仓库或者下载代码的地方打开git bash命令,按照以下步骤依次进行git initgit remote add origin 仓库名git pull origin mastergit branch 自己新创建的分支名git checkout 自己新创建的分支名git add '文件夹或者文件名'git commit -a -m “描述信息”git

2016-07-20 23:45:08 8831

转载 Cocos 2.2.1 + cocos2d-x 3.5 集成protobuf

在Cocos商店里下载cocos2d-x框架,NDK,SDK我的安装如下云风pbc https://github.com/cloudwu/pbc下载下来为pbc-master 改成pbc,内容如下pbc-lua.h是后来加的,如图,新建一个pbc-lua.h,内容如下[cpp] view plain

2016-07-18 11:35:34 718

转载 TortoiseGit之配置密钥

TortoiseGit 使用扩展名为ppk的密钥,而不是ssh-keygen生成的rsa密钥。使用命令ssh-keygen -C "邮箱地址" -t rsa产生的密钥在TortoiseGit中不能用。而基于git的开发必须要用到rsa密钥,因此需要用到TortoiseGit的putty key generator工具来生成既适用于git的rsa密钥也适用于TortoiseGit的ppk密钥,具

2016-07-15 10:57:44 374

原创 CVP认证学习笔记--李天宇027对资源的管理

本节学习了cocos的资源加载,这次更改了CCLoaderScene里的代码(也可以在自己新建一个类定义载入界面,这里为了方便起见),将载入界面的外观进行了修改,并且在此基础上实施了纹理的添加cc.textureCache.addImage()和删除纹理cc.textureCache.dumpCachedTextureInfo()。下边是CCLoaderScene里的部分代码:首先是ini

2016-07-07 01:43:16 491

原创 自定义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 830

转载 Cocos2d-x下Lua调用自定义C++类和函数的最佳实践

关于cocos2d-x下Lua调用C++的文档看了不少,但没有一篇真正把这事给讲明白了,我自己也是个初学者,摸索了半天,总结如下:cocos2d-x下Lua调用C++这事之所以看起来这么复杂、网上所有的文档都没讲清楚,是因为存在5个层面的知识点:1、在纯C环境下,把C函数注册进Lua环境,理解Lua和C之间可以互相调用的本质2、在cocos2d-x项目里,把纯C函数注册进Lua

2016-07-04 12:48:37 522

转载 用Cocos Code IDE写Lua,如何与项目中的C++代码和谐相处

1、在用Cocos Code IDE建立新的cocos2d-x项目时,最好选中Add Native Codes这个选项,只有选中了它,项目目录里才会有frameworks目录,里面才会有AppDelegate.cpp等重要的C++类(程序真正的入口)。如果不勾选这个,则Cocos Code IDE使用的是默认编译好的PrebuiltRuntimeLua.app程序,日后如果要更改C++部分的程

2016-07-04 12:44:09 562

转载 cocos2dx打包apk

Win10+VS2013+Cocos2d-x3.6+Eclipse项目打包发布详解,cocos2dxvs2013Win10+VS2013+Eclipse项目打包发布详解1、下载软件:JDKAndroid_adtAndroid_ndkAndroid_ant2、环境配置进入到cocos2dx引擎目录下,执行setup.py,然后把项目

2016-07-02 22:54:37 1256

原创 CVP认证学习笔记--李天宇026对数组的使用

本节主要通过对数组的使用,实现了节点的添加和删除,因为是在javascript的语法基础上进行了升华,所以不是很难。下面是本节的内容:首先先创建一个数组用来存放相关节点。往数组的末尾添加元素用的是push方法。在最前边添加元素用的是unshift方法,这个方法会返回一个新长度。删除最后边的元素用的是pop方法。删除指定位置后的几个元素用的是splice(x,y);第一个参数代表下标,第二个元素

2016-06-29 01:16:25 432

原创 CVP认证学习笔记--李天宇025添加音乐和音效

这节课,主要讲述的是如何播放一段音乐和播放音效。一般加背景音乐是在onEnter函数里边加。而本节课我们实现的是通过点击屏幕产生音效播放效果,并让背景音乐循环播放。本章节比较容易只需要用到两个函数:①cc.audioEngine.playmusic(“音乐的路径”,是否循环)                              ②cc.audioEngine.playEffect(“音乐

2016-06-29 01:15:37 426

原创 CVP认证学习笔记--李天宇024粒子编辑器和粒子动画

本章节学习到了如何使用粒子系统,但是在开发的项目中,我们不会经常使用到,大多时候回将粒子转成帧动画进行播放,降低IO消耗,从而节约开发的成本。直接呈上代码:var HelloWorldLayer = cc.Layer.extend({   sprite:null,    ctor:function () {        this._super();        var si

2016-06-29 01:15:06 319

原创 CVP认证学习笔记--李天宇023使用animationEditor编辑骨骼动画

本节课主要通过学习使用骨骼动画监听器setMovementEventCallFunc,来实现点击屏幕使船长进行攻击动画的播放后执行走路动画。简单的说一下我的思路:首先加载骨骼动画,通过ccs.armatureDataManager.addArmatureFileInfo这个函数。然后new一个动画层,通过new Armature()。然后getAnimation().play(“动画名字”);

2016-06-29 01:14:25 769

原创 CVP认证学习笔记--李天宇022使用animationEditor编辑帧动画

本节课主要学习了如何使用Animation Editor制作帧动画和如何在cocosjs环境下加载这些帧动画。首先通过查阅资料:添加骨骼文件信息,由骨骼数据管理器管理。采用ccs.ArmatureFileInfo这个类添加动画文件,然后添加动画层,然后播放哪一帧的动画。当然在此之前一定要在我们的配置文件中加入”extensions”,只有加入这个才可以用cocostudio的内容......还

2016-06-29 01:13:47 574

原创 CVP认证学习笔记--李天宇021纹理打包文件读取

通过使用打包纹理工具,发布成功了.png和.plist文件。使用非常简单方便。本节课是用通过打包好的plist文件,一次性读取,减少io,实现高效率.用cc.SpriteFrameCache实现添加动画帧,然后循环遍历,并添加到数组中。然后获取每帧的name。最后通过一个空sprite来runaction这个动画。具体代码如下: var HelloWorldLayer = cc.Layer

2016-06-29 01:12:59 586

原创 CVP认证学习笔记--李天宇020实现切图帧动画

帧动画的切换实际上是把所需要的帧动画放在一个缓存器里.首先创建数组,用textureCache添加图片到缓存中。然后添加帧序列,将序列添加到数组中。部分代码如下:ctor:function () {        this._super();       //添加背景       var bg=new cc.Sprite(res.bg_jpg);       this.addC

2016-06-29 01:12:31 452

原创 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 386

原创 CVP认证学习笔记--李天宇018spriteBatchNode使用

SpriteBatchNode是批处理节点,他通过一次opengl调用绘制所有子节点。那么下面我们来看一下怎么来绘制?SpriteBatchNode是一次性绘制,它只有当Sprite使用的纹理与SpriteBatchNode一样时才能添加为其子节点。并且只有sprite的子类或者子类实例化对象才能添加到SpriteBatchNode上。核心代码如下:switch(obj.tag){

2016-06-29 01:11:02 503

原创 CVP认证学习笔记--李天宇017图片加载的进度实现

本节课的内容是实现一个进度条。与之前学习的内容有着密切的联系。首先是需要通过cc.DrawNode绘制一个节点,画一个四边形。然后通过cc.textureCache.addImageAsync实现异步加载。通过查询API,得知异步加载指定的纹理文件。如果文件图像先前没有被加载,它将创建一个新的 Texture2D 对象。 否则它将会在一个新线程加载纹理,加载完成时,Texture2D 对象

2016-06-29 01:09:54 590

原创 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 323

原创 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 417

原创 CVP认证学习笔记--李天宇013在Node的生命周期和图层种处理触摸

本节课学习的内容是单点触摸的内容。通过本节课的学习,在以后的做游戏的过程中,可以更加的方便。核心代码如下:cc.eventManager.addListener({            event:cc.EventListener.TOUCH_ONE_BY_ONE,            swallowTouches:true,            onTouchBegan:t

2016-06-29 01:06:55 285

原创 CVP认证学习笔记--李天宇014点击英雄

本节课的内容是点击英雄然后在场景中添加一个label,使其分数每次加10。通过这次的作.业又将之前的label相关的知识又进行了回顾。和单点触摸知识的回顾,分数累加的代码应该在ontouchbegan这个函数中进行,因为每点击一下就要加10。后来查阅相关API运用到了label.setString这个函数。刚开始的label是个静止的”0”。那么想让它进行累加,就要把它单拿出来,然后将分数赋给

2016-06-29 01:04:52 324

原创 CVP认证学习笔记--李天宇013在Node的生命周期和图层种处理触摸

本节课学习的内容是单点触摸的内容。通过本节课的学习,在以后的做游戏的过程中,可以更加的方便。核心代码如下:cc.eventManager.addListener({            event:cc.EventListener.TOUCH_ONE_BY_ONE,            swallowTouches:true,            onTouchBegan:t

2016-06-29 01:02:57 347

原创 CVP认证学习笔记--李天宇012组合动作

组合动作是继上一节的内容后的进一步扩展,cc.sequence(动作1,动作2,动作3);那么这里需要注意的是每个动作都会按顺序依次进行执行。如果需要同时执行2个动作,那么需要用到cc.spawn(动作1,动作2);上节忽略了一个问题那就是有的是To而有的是By,这里说一下他们之间的区别那就是一个绝对,一个是相对!。To可以通俗意义上理解为到哪个点的意思,是以左下角为基准点进行移动。而by则是在节

2016-06-29 01:01:22 522

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除