Cocos2d-x
180斤的程序员
请支持我的博客,有什么不对的地方请指教!
展开
-
Cocos2dx三种定时器的使用
cocos2dx中有三种定时器:schedule,scheduleUpdate,scheduleOnce。、1、scheduleUpdate程序会每帧都会自动执行一次默认的Update函数首先在HelloWord类的头文件中声明Update函数: void Update(float dt);然后在HelloWorld类源文件中实现函数Update:void HelloWor...原创 2017-06-30 11:48:18 · 505 阅读 · 0 评论 -
Android打包(Android Studio方式)
1、创建Cocos2dx项目2、确定SDK、NDK、ANT已经配置好环境(进入引擎,左shift右鼠标打开终端,把setup.py拖进终端,检查环境是否配置好)3、修改Android.mk文件,添加需要编译的.cpp文件4、修改app目录下的project.properties的target,此时看下你android-sdk\platforms是否有对应的,如果没有的话,修改已经有的,原创 2017-08-07 17:02:53 · 889 阅读 · 0 评论 -
中间放技巧
中间放规则sprite->setPosition(Vec2(535.f - dropNo_*55.f + i*110.f, 275.f));//110.f表示相隔距离、dropNo_表示有多少个精灵i从0开始记起必须满足几个条件假设背景中间位置为480当有一个时:535.f - 1*55.f = 480当有两个时两者的中间的等于背景的中间位置:原创 2017-08-08 11:46:09 · 263 阅读 · 0 评论 -
如何进行多个按钮之间来进行切换
1、创建一个MenuItem类型的Vector集合,把所有的按钮加入集合中,并且这个集合添加Menu中;Vector _SelectMenuArray;int selectIndex = 0;//默认选择第一个;for (int i = 0; i auto menuItem = MenuItemSprite::create(NULL, CC_CALLBACK_1(HelloWorl原创 2017-08-08 11:46:32 · 1493 阅读 · 0 评论 -
xml动画的使用
使用TexturePackers制作plist文件,使用AnimatePacker制作xml文件AnimatePacker的使用把plist文件拖进plist里面,在点击Animations的照相按钮,取名为plist的名字或者其他名字,再把sprites的资源拖进到SpriteFrames里面进行调整顺序,点击保存xml,保存的名字必须与点击照相按钮的名字相同SpriteFrameC原创 2017-08-10 09:51:12 · 422 阅读 · 0 评论 -
调度器的定时器
m_pMyScheduler = new Scheduler;Director::getInstance()->getScheduler()->scheduleUpdate(m_pMyScheduler, 1, false);关闭定时器Director::getInstance()->getScheduler()->unscheduleUpdate(m_pMyScheduler);原创 2017-08-10 09:51:20 · 317 阅读 · 0 评论 -
Node的定时器
默认定时器scheduleUpdate() 该定时器默认刷新次数与屏幕刷新频率有关。如频率为60帧每秒,那么scheduleUpdate每秒执行60次刷新。 与scheduleUpdate其对应的刷新函数体为update(),即每一帧会执行一次update()函数。 相关操作如下: //开启默认定时器。刷新间隔为一帧。 void scheduleU原创 2017-08-10 09:51:28 · 407 阅读 · 0 评论 -
动作使用
第一种:隐藏、延时、显示m_pImgLight1->runAction(Sequence::create(Hide::create(), DelayTime::create(0.2f), Show::create(),CallFuncN::create(CC_CALLBACK_1(CpSelSexLayer::runActionBlink, this)), NULL));//这里的this原创 2017-08-10 09:51:36 · 213 阅读 · 0 评论 -
粒子特效
ParticleSystem* pParitcleDown = ParticleSystemQuad::create(GetLocResName("123.plist"));pParitcleDown->setPositionType(ParticleSystem::PositionType::RELATIVE);//设置位置类型pParitcleDown->setPosition(Vec原创 2017-08-10 09:51:54 · 289 阅读 · 0 评论 -
获取Cocos Studio制作的层
ui::Widget* m_pWidgetRoot= dynamic_cast(cocostudio::GUIReader::getInstance()->widgetFromJsonFile(“CpSelSexLayer.ExportJson”));//这里Cocos Studio对应层类型可以转换成Layout类型;//获取Layout对象(Cocos Studio对应层类型)m_pL原创 2017-08-10 09:52:02 · 398 阅读 · 0 评论 -
cocos2dx+vs2013生成的安卓项目,编译时提示环境变量 ANDROID SDK_ROOT 没有定义
检查是否配置环境变量:终端输入adb如果修改了环境变量,记得在coco2dx引擎根目录下的用终端打开输入Python setup.py,会检查你的sdk ndk ant 路径。如果一闪而过,表示三个的路径都ok了。如果没有,则要手动输入路径。原创 2017-08-10 09:52:23 · 5887 阅读 · 0 评论 -
Cocos3.x跟Cocos2.x的区别
【v3.0 亮点】 > 使用 C++(C++11)的特性取代了 Objective-C的特性 > 优化了 Labels > 优化了渲染器(比 v2.2更快) > 新的事件分发机制 > 物理引擎集成 > 新的 UI对象 > 模板容器 > 使用 cocos2d::Map<>替代了 CCDic原创 2017-08-03 13:44:17 · 3075 阅读 · 0 评论 -
cocos2d-x3.2 24种基本特效
Shaky3D::create(时间,晃动网格大小,晃动范围,Z轴是否晃动); //创建一个3D晃动的效果ShakyTiles3D::create(时间,晃动网格大小,晃动范围,Z轴是否晃动); //创建一个3D瓷砖晃动的效果ShatteredTiles3D::create(时间,晃动网格大小,晃动范围,Z轴是否晃动); //创建一个3D破碎瓷砖特效Waves::c原创 2017-08-03 13:44:34 · 403 阅读 · 0 评论 -
cocos2d-x3.2 33种场景切换
1.创建 Scene * scene=Scenedemo::scene();//跳转到Scenedemo场景2.函数[1]:TransitionCrossFade::create(时间,目标场景); //慢慢淡化到另一场景[2]:TransitionFade::create(时间,目标场景); //本场景变暗消失后另一场景慢慢出现[3]:Transi原创 2017-08-03 13:44:52 · 302 阅读 · 0 评论 -
Cocos2d-x3.2 Animate帧动画
//GameScene.h#include "cocos2d.h"class GameScene : public cocos2d::Layer{public: static cocos2d::Scene* createScene(); virtual bool init(); void menuCallback(cocos2d::Ref*原创 2017-08-03 13:45:10 · 244 阅读 · 0 评论 -
ClippingNode裁剪节点(模板遮罩)
//GameScene.h#include "cocos2d.h"USING_NS_CC;class GameScene : public cocos2d::Layer{public: static cocos2d::Scene* createScene(); virtual bool init();virtual bool onTouchBegan(原创 2017-08-03 13:45:19 · 261 阅读 · 0 评论 -
cocos2.x转换到cocos3.x有哪些变化?
CCDeprecated.h中存放的都是2.x将要被抛弃的命名规范,主要包含类名、枚举类型。虽然说2.x的这些命名规范被CCDeprecated.h保留了。但是为了彻底学习3.x的新特性,就必须要尽量不要使用2.x的命名规范。【CCDeprecated.h】1、主要的变更有以下几个方面 (1)去掉C++类的"CC" 前缀 (2)去掉全局函数及常量的"cc"原创 2017-08-03 13:45:44 · 662 阅读 · 0 评论 -
文件操作
userDefault是一个单例,通过userDefault::getInstance();获得这个类的实例。userDefault使用哈希表结构,key-value,key索引,value为值userDefault->setStringForKey(“key1”,”Value”);userDefault->setBoolForKey(“key2”true);userDefault->原创 2017-08-03 13:46:22 · 160 阅读 · 0 评论 -
Cocos2d-x项目创建方式
cocos new HelloWorld(文件名) -l cpp(语言编写方式) -p com.lianghui.helloworld(公司) -d /Users/sxwt7/Desktop/(存放位置)原创 2017-08-03 13:46:38 · 291 阅读 · 0 评论 -
static std::string jstring2string (jstring str)
jstring与C++字符串的转换(jstring转换成C++字符串)原创 2017-08-11 09:01:15 · 1380 阅读 · 0 评论 -
getStaticMethodInfo参数详解
两个接口的参数一样,意义也相同,详解如下:JniMethodInfo &methodinfo JniMethodInfo对象的引用,函数执行中会把jniEvn、classid、methodid写入到引用中。const char *className 类的路径,把类的完整包名写全,用法如以上代码。const char *methodName 函数名。const char *param原创 2017-08-11 09:01:48 · 1112 阅读 · 0 评论 -
Android中JniHelper类里 getStaticMethodInfo的使用
加入如下头文件:#include "platform/android/jni/JniHelper.h"需要使用的接口如下:1、static bool getStaticMethodInfo(JniMethodInfo &methodinfo, const char *className, const char *methodName, const char *paramCode);原创 2017-08-11 09:02:05 · 1133 阅读 · 0 评论 -
Cocos2dx游戏开发需要用到哪些软件
1、VS20132、Visual_Assist_X(VS插件 破解版)3、CodeMaid(VS插件)(https://marketplace.visualstudio.com/items?itemName=SteveCadwallader.CodeMaid) 安装方法http://www.tangrt.com/mvxs/czmw/196544.html4、BeyondCompare原创 2017-08-04 09:00:18 · 2243 阅读 · 0 评论 -
Cocos项目移除Cocos引擎,通过在别的地方使用引擎
1、将Cocos2dx引擎的build->cocos2d-win32.sln进行编译下,主要编译(External/libcocos2d/libjscocos2d/libluacocos2d),编译后在Debug.win32目录会生成一些文件2、在cocos2d-x\tools\cocos2d-console\bin左shift右鼠标打开终端创建一个cocos2dx项目(或者已经配置好环境的可原创 2017-08-04 09:00:30 · 1491 阅读 · 0 评论 -
Cocos项目环境配置
1、安装Python安装完成Python后,配置Python环境变量,在系统变量path下加上;(Python的安装路径)2、安装Java JDKhttp://www.oracle.com/technetwork/java/javase/downloads/index.html配置环境变量:新建一个JAVA_HOME键,值设为JDK的安装目录。打开PATH键,在末尾原创 2017-08-04 09:00:39 · 468 阅读 · 0 评论 -
创建Cocos2dx项目两种方法
1、最直接的方法就是进入到引擎D:\work\cocos2d-x\tools\cocos2d-console,左按shift,右点鼠标,打开终端,输入cocos new 项目名称 -l cpp -d 项目路径2、进入项目,左按shift,右点鼠标,把setup.py文件拖进终端,设置COCOS_CONSOLE_ROOT/COCOS_X_ROOT/COCOS_TEMPLATES_ROOT/NDK原创 2017-08-04 09:00:50 · 1150 阅读 · 0 评论 -
另外一种创建Cocos项目方法
打开解压好的3.4目录,cocos2d-x-3.4->tools->cocos2d-console->bin,在Windows命令行下转到bin目录下,然后执行下述命令:cocos new项目名称> -p 包名> -l -d 项目所在目录>,例如,创建一个名为test的项目:cocos new test -p com.laowu.test -l cpp如果不指定项目的所在目录,则默认原创 2017-08-05 10:07:19 · 426 阅读 · 0 评论 -
Cocos2d-x UI以及控件
#include "HelloWorldScene.h"HelloWorld::HelloWorld(){}HelloWorld::~HelloWorld(){}Scene* HelloWorld::createScene(){ auto scene = Scene::create(); auto laye原创 2017-08-12 23:14:29 · 1757 阅读 · 0 评论 -
Cocos2d-x场景切换相关函数介绍
场景切换是通过导演类Director实现的,其中的相关函数如下:runWithScene(Scene* scene)。该函数可以运行场景。只能在启动第一个场景时候调用该函数。如果已经有一个场景运行情况下则不能调用该函数。replaceScene(Scene* scene)。切换到下一个场景。用一个新的场景替换当前场景,当前场景被终端释放。pushScene(Scene* scene)。原创 2017-09-04 10:40:29 · 271 阅读 · 0 评论 -
Cocos2d-x中Node节点生命周期函数介绍
层(Layer)的生命周期函数有如下:init()。初始化层调用。onEnter()。进入层时候调用。onEnterTransitionDidFinish()。进入层而且过渡动画结束时候调用。onExit()。退出层时候调用。onExitTransitionDidStart()。退出层而且开始过渡动画时候调用。cleanup()。层对象被清除时候调用。提示: 层(Lay原创 2017-09-04 10:40:35 · 721 阅读 · 0 评论 -
单点触摸事件
// ①创建一个单点触摸事件监听器,处理触摸事件逻辑auto listener1 = EventListenerTouchOneByOne::create();// ②设置是否向下传递触摸listener1->setSwallowTouches(true);// ③通过 lambda表达式 直接实现触摸事件的响应函数listener1->onTouchBegan = [](原创 2017-09-04 10:40:43 · 371 阅读 · 0 评论 -
注意类中使用到控件必须包含这几个头文件:
#include "ui/CocosGUI.h"USING_NS_CC;using namespace ui;*而且命名空间ui必须放到USING_NS_CC后面,如果using namespace std放在USING_NS_CC_EXT后面,放在USING_NS_CC必须放在USING_NS_CC_EXT后面,否则没有影响;原创 2017-09-04 10:40:52 · 365 阅读 · 0 评论 -
倒计时功能
1、首先在GameScene.h头文件声明一个int类型的时间变量int nTime,同时声明一个倒计时功能的函数void timeReduce(float time);2、在GameScene.cpp函数前声明Label * pAlarmClockLB;3、Init方法中创建时间标签和时间的图标,并且打开时间调度器//创建时间标签pAlarmClockLB=Label::c原创 2017-09-04 10:40:59 · 320 阅读 · 0 评论 -
Coco2dx文件操作FileUtils
添加资源路径一般我们添加图片资源的时候,会写上图片路径,但是一旦路径很长的话,每个都写是不是很麻烦。这时候可以统一路径。在Delegate.cpp使用默认文件路径.最简便的方法就是:auto fileUtils = FileUtils::getInstance();std::vector searchPaths;searchPaths.push_back("res");se原创 2017-09-04 10:41:06 · 898 阅读 · 0 评论 -
防止头文件被多次编译的写法有两种
1、#pragma once2、#ifndef __BLUETOOTH_H__ #define __BLUETOOTH_H__......... #endif67、注释整个文件的方法在头文件中使用#if defined(HAVE_BULE_MODE) && (HAVE_BULE_MODE > 0)//HAVE_BULE_MODE在项目属性中的预处理器定义....原创 2017-08-29 09:20:34 · 405 阅读 · 0 评论 -
Cocos2dx常用的一些宏定义和头文件
1、USING_NS_CC; 相对应于using namespace cocos2d;域名操作符(命名空间)2、#include”cocos2d.h” cocos的头文件3、平台 #define CC_PLATFORM_IOS 1#define CC_PLATFORM_ANDROID 2#define CC_PLATFOR原创 2017-08-29 09:20:57 · 1229 阅读 · 0 评论 -
cocos2d-x不是类名或结构名问题
解决方案:视图->解决方案下面的工程->右键属性->配置属性->C/C++->常规->附加包含目录->添加一个$(EngineRoot)就行了原创 2017-08-29 09:21:05 · 1871 阅读 · 0 评论 -
常用的一些宏定义
①、定义图片文件#define X_IMAGE(name, x) #name#x#define IMAGE(name) X_IMAGE(name,.png)如何使用呢(比如HelloWorld.png)auto sp = Sprite::createWithSpriteFrameName(IMAGE(HelloWorld));sp->setPosition(1,2);原创 2017-08-29 09:21:13 · 257 阅读 · 0 评论 -
Cocos2dx如何把三个Node节点或者控件放在某个节点/控件中间位置?
1、先求出三个Node节点或者控件所占的宽度2、求出三个Node节点或者控件addchild的父类的中间位置3、设第一个节点左对齐,坐标为父类中间的位置-三个Node节点或者控件所占的宽度/24、设置第二个位置左对齐,坐标为第一个节点的坐标加上第一个节点坐标的宽度5、设置第三个位置左对齐,坐标为第二个节点的坐标加上第二个节点坐标的宽度例如三个控件 --宝石图标原创 2017-08-30 09:15:05 · 1179 阅读 · 0 评论 -
Cocos2d-JS中ctor和Cocos2d-x中init的作用
ctor构造函数:ctor构造函数new一个对象的时候调用,意思就是ctor构造函数new对象后自动调用,init在cocos2dx里面是静态函数create()方式创建对象自动调用。原创 2017-08-30 09:15:13 · 2919 阅读 · 0 评论