ui树及运行时游戏对象 node类是所有ui元素的基类,我们看看它有啥属性 1.位置和变换 position:位置,决定元素显示位置 anchorPoint:锚点,决定元素哪个部分处于这个位置上,这点范围(0-1, 0-1)锚点示意图,假设元素在100,100,锚点为0.5,0.5,则图内中间的点处于100,100这位置 两个点决定元素在屏幕哪个位置。锚点影响元素的变换操作,例如旋转缩放等。 2.坐标系 世界坐标系:原点屏幕左下,向右x,向上y 本地坐标...
游戏中常常会用到一些变换:游戏中武器和角色在一个layer上,为了效率。会考虑将bullet, effect和 PhysicsParticle分别放到不用的层上,相应的层上使用batchnode来提高效率武器和PhysicsParticleLauncher(粒子发射器)绑定,发射的时候。会向PhysicsParticleLayer的武器同样的位置上生成一个物理粒子特效会常常常使用到convertToNodeSpace和convertToWorldSpace转换坐标我们加三个sprite,r0,r1,r2,r0的父节点是layer, 父节点下坐标(...
/****************************************************************** 题目:输入一颗二叉树和一个整数,打印出二叉树中节点值的和为输入整数 的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路 径。 ******************************************************************/ #include<stdio.h> #include<vector>using namespace std;struct BinaryTreeNode {int m_nValue;BinaryTreeNode* m_pLeft;BinaryTreeN...
最近手痒了,不小心下载了cocos2dx 3.1.1,又搞了个VS2012,于是头脑发热的搞起 3.1.1了。我是有多么的不专心啊。 已经把自己之前的学习内容从2.2.3迁移到了3.1.1,除了骨骼动画相关的之外。简单记录一下过程:1 安装与搭建解压cocos2dx3.1.1版本,根目录下会有download-deps.py和setup.py,预先用python分别对这两个文件跑一遍,有问题的话解决问题,没问题的话最好了。 2新建项目跑完以上两个py文件之后,会自己将所有相关的系统...
1.只有CCLayer及其派生类才有触摸功能.2.开启触摸setTouchEnable(true);3.设置触摸模式,单点,多点(仅IOS支持)setTouchMode(kCCTouchesOneByOne);//单点触摸4.需要重载(override)的四个触摸事件函数 bool ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent);//点触事件,返回false,表示触摸事件不往下传递了 void ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent);//移动事件 void ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent);//结...
事件系统,是一个软件的核心组成部分。从小处讲它是应用程序内部各模块交互的设计模式,从大处讲,它是软件架构的组成模块。在现代软件开发中,操作系统通常通过一些预定义的事件,告知应用程序发生的一些事情如用户输入,内存不足等。然而,通常我们并不直接使用系统事件,例如一个界面可能不同区域的元素对触摸事件的理解都不一样,在某些情况下需要优先处理某些逻辑,这就需要对系统事件再包装,以应对界面复杂的元素和逻辑。另...
以最新的Cocos2d-x 3.2 release为例,介绍如何在Cocos2d-x中让程序背景透明。一样,先上图。修改的东西不多。主要有3步。1.在AndroidManifest.xml中设置Activity背景透明? 1android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"如图,2.在libcocos2dx项目的org.cocos2dx.lib项目中的Cocos2dxActivity.java文件中,修改init()方法。增加如下代码:? 1 2 3this.mGLSurfaceView.setZOrderOnTop(true);this.mGLSur...
目的看到群里有个朋友搞了好几天函数指针传递,没搞好。所以写一篇文章,旨在从cocos2dx中帮朋友们找到如何传递指针。旧版本的函数指针传递全局函数函数指针调用一般在C++11之前,我们一般是这样定义一个函数指针类型。typede void(*pFunc)(int,...);什么意思呢?typedef void/*return type of function*/(*pFunc/*the pointer of function*/)(int,.../*the types of function parameters*/);typedef void/*函数返回类型*/(*pFun...
一个sprite的情况// oneSpritevoid HelloWorld::touchableSpriteTestOne() {Vec2 origin = Director::getInstance()->getVisibleOrigin();Size size = Director::getInstance()->getVisibleSize();auto sprite1 = Sprite::create("Images/CyanSquare.png");sprite1->setPosition(160, 240);addChild(sprite1,0,100);// Make sprite1 touchableauto listener1 = EventListenerTouchOneByOne::create();listener1->setSwallowTouches...
首先是头文件 部分代码是借鉴加修改 大部分是自己写的。class HelloWorld : public cocos2d::CCLayer { public:virtual bool init(); static cocos2d::CCScene* scene();void menuCloseCallback(CCObject* pSender);CREATE_FUNC(HelloWorld); //以上为自动生成的代码bool doUp(); //实现上下左右移动功能bool doDown();bool doLeft();bool doRight();void createCardSprite(cocos2d::CCSize size); //创建出一个4*4的精灵矩阵vo...
[AttackCommand]1. 声明基本的碰撞体,作为角色释放的攻击单位BasicCollider = class("BasicCollider", function()local node = cc.Node:create()node:setCascadeColorEnabled(true)return node end)function BasicCollider:ctor()self.minRange = 0 --the min radius of the fanself.maxRange = 150 --the max radius of the fanself.angle = 120 --arc of attack, in radiansself.knock = 150 --default knock, knocks 1...
前言 从事cocos2dx开发三年多了,一直没有找到比较好的骨骼工具。后来接触了dragonbones,仅管cocos对dragonbones有支持,但是也仅限2.2版本,并一直都不更新。官方有c++源代码,但是代码看起来很乱,代码的风格也不那么让人接受接口使用不清晰。动画要在flash里编辑,显示不清晰,导出特定格式,非常繁琐。spine收费。cocos官方提供的骨骼动画用起来也不是很舒服,各种问题,并且cocos2dx都出好多版本骨骼动画却很少更新。 ...
我使用的是cocos2dx-2.1.4版本+cygwin,其实主要是为了配合公司项目,所以用了低版本的cocos2dx假设已经配置环境成功:按照对应的要求输入包名,项目名,以及TargetId,就可以了。 注意:我在创建的时候遇到一个问题,我用的是eclipse的SDK,然后eclipse里面的android.bat根本找不到对应的所有版本的targetId,于是我就用了androidStudio里面的android.bat,居然就可以了,我也不知道为什么。原文:http://www.cnblogs.com/wufeng0...
本篇文章主要讲一下怎么做一个不规则的按钮,比如如下图的八卦,点击绿色和点击红色部分,需要执行不同的事件一般情况下,如果要检测某一个精灵是否被点中,做法如下bool HelloWorld::ccTouchBegan(cocos2d::CCTouch* pTouch, cocos2d::CCEvent* pEvent) {CCSize sprSize = pSpr->getContentSize();CCPoint point = pSpr->convertTouchToNodeSpace(pTouch);if (CCRectMake(0, 0, sprSize.width, sprSize.height).containsPoint(poi...
cocos2dx windows下开发真是波折多多啊;最近又遇到了vs2013调试状态下能播放声音,非调试状态不能播放的问题。跟了很多代码发现原来是带了中文路径的原因。故找到问题,马上解决掉首先找到:libAudio工程下的SimpleAudioEngine.cpp文件找到如下代码////////////////////////////////////////////////////////////////////////// // static function //////////////////////////////////////////////////////////////////////////s...