随笔分类 -  Cocos2d-x

摘要:1.子节点可以通过this->getParent()来获得相应的父节点,并且进行强制类型转换。 ((Scene*)this->getParent())->getPhysicsWorld()->setAutoStep(false); 2.父节点可以通过this->getChildren()来获得全部的 阅读全文
posted @ 2016-08-25 11:56 杭者 阅读(953) 评论(0) 推荐(0)
摘要:当局分数的打印和最高分数的记录 1.首先定义一个Label类型的节点在GameScene.cpp的init方法中,设置初始分数为0 _myScore = 0; scorelabel = Label::createWithSystemFont("Score: 0", "Arial", 36); sco 阅读全文
posted @ 2016-08-21 19:17 杭者 阅读(1100) 评论(0) 推荐(0)
摘要:方法一: 1.在.h文件的属性里面先声明要使用的节点或者变量。 private: Label *scorelabel; 2.在.cpp文件中创建并使用这个节点或者变量。 scorelabel = Label::createWithSystemFont("Score: 0", "Arial", 36) 阅读全文
posted @ 2016-08-21 16:41 杭者 阅读(826) 评论(0) 推荐(0)
摘要:精灵使用Blink 执行完动作之后,消失不见了,原因是闪烁的过程中精灵刚好到空纹理(透明)的那部分,这时候用户通过某种操作中断闪烁动作,导致下个状态的时候,精灵依然停留在空纹理的状态。所以最好在精灵执行完闪烁动作之后,或者执行下个动作之前,让精灵setvisible(true)显示出来。 解决方式: 阅读全文
posted @ 2016-08-16 19:36 杭者 阅读(754) 评论(0) 推荐(0)
摘要:方法一: 修改自己定义的类的名字,VS2013中可以用Ctrl+H来替换某个特定的单词,Ctrl+F是用来查询某个单词所在的位置或者有没有存在。 方法二: 1.给自己定义的类的.h和.cpp文件的整体加上一个命名空间 Edge.h文件 namespace caishaohang {class Edg 阅读全文
posted @ 2016-08-15 22:50 杭者 阅读(674) 评论(0) 推荐(0)
摘要:类A要获得类B中的某个属性,可以是节点属性 方法一 1.先在B类中定义一个_edge的节点属性(可以在B类中进行各种对_edge的操作),然后写一个方法Node* GameController::getEdge(){ return _edge;} 2.接着在A类中先实例化一个B类的对象,然后用这个对 阅读全文
posted @ 2016-08-14 11:04 杭者 阅读(417) 评论(0) 推荐(0)
摘要:写一个监听器 touchlistener->onTouchMoved = [this](Touch* pTouch, Event*) { auto delta = pTouch->getDelta(); auto hero = (PlaneHero*)getChildByTag(HERO_TAG); 阅读全文
posted @ 2016-08-11 23:08 杭者 阅读(394) 评论(0) 推荐(0)
摘要:1.如果想要设置某个物体有多边形的刚体,这样可以更精确地进行碰撞检测,可以用以下的方法 auto hero = PlaneHero::create(); addChild(hero, 0, HERO_TAG); hero->setPosition(Vec2(winSize.width / 2, he 阅读全文
posted @ 2016-08-11 20:56 杭者 阅读(2264) 评论(0) 推荐(0)
摘要:播放背景,两个背景的图片是一样的,紧挨着循环播放,以下代码写在playBackground()方法中,并在GameScene.cpp的init方法中调用。 void GameScene::playBackground(){ auto winSize = Director::getInstance() 阅读全文
posted @ 2016-08-11 20:25 杭者 阅读(477) 评论(0) 推荐(0)
摘要:1.首先在Resources文件夹下要有打包好的图集文件和相同名称的plist文件。 shoot.png shoot.plist shoot_background.png shoot_background.plist 2.在GameScene.cpp文件下的init方法中加载plist文件 //加载 阅读全文
posted @ 2016-08-11 16:47 杭者 阅读(1695) 评论(0) 推荐(0)
摘要:注意: 当一个节点有一个子节点的时候,如果移动父节点,子节点也会跟着做相应的移动变化,只要被添加到父节点中,子节点就被绑定了,所以子节点的位置,坐标就会被动地变化。 当一个节点有一个子节点的时候,如果通过setPosition方法设置子节点的坐标,那么,这时候其实是在以父节点左下角为原点的坐标系中, 阅读全文
posted @ 2016-08-11 11:34 杭者 阅读(4829) 评论(0) 推荐(0)
摘要:1.一般情况下都是把需要实例化的对象类的头文件包含到一个GameController.h中,再在GameController.cpp文件里面去使用各种对象类的方法来实现游戏的逻辑。 2.还有的时候会把GameScene.h头文件包含到需要实例化的对象类的头文件中,是为了使用GameScene类中的某 阅读全文
posted @ 2016-08-10 21:14 杭者 阅读(478) 评论(0) 推荐(0)
摘要:一.addchild virtual void addchild( Node * child , int localZOrder , int tag )添加一个子节点到容器中,有Z轴顺序和一个标记。 1.如果子节点被添加到了一个“running(活动着的)”节点,那么'onEnter'和 'onEn 阅读全文
posted @ 2016-08-10 21:01 杭者 阅读(8925) 评论(0) 推荐(1)
摘要:init()和onEnter()这两个方法都是写实例化对象的类(比如继承自Node的一些类等等)的时候用到的方法。 一般都是public类型下面的 bool init(); void onEnter(); 两个方法在实现的时候都要先执行父类方法,比如 Node::init(); Node::onEn 阅读全文
posted @ 2016-08-10 20:20 杭者 阅读(882) 评论(0) 推荐(0)
摘要:1.每一个对象类都有一个自己public的一个create函数(等价于CREATE_FUNC),和init函数。 2.create函数返回的是自身的类型,init函数是在ceate函数被调用的时候自动调用。 3.如果是场景对象类的话,还要public一个 static cocos2d::Scene* 阅读全文
posted @ 2016-07-30 16:01 杭者 阅读(1635) 评论(0) 推荐(0)
摘要:这是电脑短时间内帧率低,无法满足游戏配置的帧率引起的。 解决方法: 第一种: 1.打开AppDelegate.cpp文件 2.把director->setAnimationInterval(1.0 / 60);改为 director->setAnimationInterval(1.0 / 50);或 阅读全文
posted @ 2016-07-29 20:45 杭者 阅读(842) 评论(0) 推荐(0)
摘要:比如要让角色跳起来 1.如果是用到物理引擎,那么在物理世界中,可以用 hero->getPhysicsBody()->setVelocity(Vec2(0, 400)); //给主角一个向上的速度 如果不想让主角一点就跳,而是点完后等执行完一个跳跃的动作后落到地面后再跳的话,可以给这个语句加一个条件 阅读全文
posted @ 2016-07-25 20:45 杭者 阅读(427) 评论(0) 推荐(0)
摘要:1.定义和背景 cocos2d::Vector<T> 是一个封装了动态大小的数组的顺序型容器。 它的元素是连续存储的,cocos2d::Vector<T> 的存储是自动处理的。其内部的数据结构实现实际上是STL标准的顺序型容器 std::vector。 在 Cocos2d-x v3.0 beta 之 阅读全文
posted @ 2016-07-24 22:44 杭者 阅读(1607) 评论(0) 推荐(0)
摘要:GameController类是继承自Scheduler(有计时功能)或者Ref(可自动释放)的用户自己定义的一个控制器 如果一个场景有多个层的话,要用GameController,一个GameController实例的参数传进来一个层实例,如果要对这些层进行管理的话,还要在HelloWorld的. 阅读全文
posted @ 2016-07-24 22:15 杭者 阅读(450) 评论(0) 推荐(0)
摘要:一.如果要让某类实例对象要连续执行某些语句(比如让每个Block实例从运行框最右边移动到最左边) 要在Block类中增加一些东西 1.先在其.cpp文件的init()函数中执行scheduleUpdate()方法。 2.然后在.h中声明一个虚拟的函数update,并在.cpp文件中定义update, 阅读全文
posted @ 2016-07-24 21:20 杭者 阅读(5762) 评论(0) 推荐(0)