cocos2dx 一步步入门 CCMoveTo/CCMoveBy/CCRotateTo/CCRotateBy

// on "init" you need to initialize your instance
bool HelloWorld::init() {
    bool bRet = false;
    do {
        CC_BREAK_IF(!CCLayer::init());

        // 添加关闭按钮
        CCMenuItemImage *pCloseItem = CCMenuItemImage::create(
                          "CloseNormal.png",
                          "CloseSelected.png",
                          this,
                          menu_selector(HelloWorld::menuCloseCallback));
        CC_BREAK_IF(!pCloseItem);
        pCloseItem->setPosition( ccp(CCDirector::sharedDirector()->getWinSize().width - 20, 20) );

        // 添加到菜单中
        CCMenu* pMenu = CCMenu::create(pCloseItem, NULL);
        CC_BREAK_IF(!pMenu);
        pMenu->setPosition(CCPointZero);
        this->addChild(pMenu, 1);

        CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();
        float width = visibleSize.width;
        float originX = CCDirector::sharedDirector()->getVisibleOrigin().x + width - 100 * 2;
        float originY = CCDirector::sharedDirector()->getVisibleOrigin().y;
        float height = visibleSize.height;

        // grossini
        m_pGrossiniSprite = CCSprite::create(s_pathGrossini);
        CC_BREAK_IF(!m_pGrossiniSprite);
        m_pGrossiniSprite->retain();  // 内存管理,需要保留
        m_pGrossiniSprite->setPosition(ccp(originX / 3.f, originY + height / 2.f));
        this->addChild(m_pGrossiniSprite);
        /// CCMoveTo 表示将精灵的位置移动到500, 500的位置,不管当前什么位置
        CCFiniteTimeAction *pMoveTo = CCMoveTo::create(3.5f, ccp(500, 500));
        CCFiniteTimeAction *pMoveBack = CCMoveTo::create(3.5, ccp(originX / 3.f,
                                                                  originY + height / 2.f));
        m_pGrossiniSprite->runAction(CCSequence::create(pMoveTo, pMoveBack, NULL));

        // tamara
        m_pTamaraSprite = CCSprite::create(s_pathGrossinisSister1);
        CC_BREAK_IF(!m_pTamaraSprite);
        m_pTamaraSprite->retain();    // 内存管理,需要保留
        m_pTamaraSprite->setPosition(ccp(originX / 3 * 2.f, originY + height / 2.f));
        this->addChild(m_pTamaraSprite);
        /// CCMoveBy 表示从当前位置开始,x方向向右移动300,y方向向下移动200
        CCFiniteTimeAction *pMoveBy = CCMoveBy::create(3.5f, ccp(300, -200));
        CCFiniteTimeAction *pMoveByBack = CCMoveTo::create(3.5, ccp(originX / 3 * 2.f,
                                                                    originY + height / 2.f));
        m_pTamaraSprite->runAction(CCSequence::create(pMoveBy, pMoveByBack, NULL));

        // kathia
        m_pKathiaSprite = CCSprite::create(s_pathGrossinisSister2);
        CC_BREAK_IF(!m_pKathiaSprite);
        m_pKathiaSprite->retain();    // 内存管理,需要保留
        m_pKathiaSprite->setPosition(ccp(originX / 3.f * 3, originY + height / 2.f));
        this->addChild(m_pKathiaSprite);
        /// CCRotateTo 表示旋转到指定的角度(180)
        /// CCRotateBy 表示从当前角度,继续再旋转指定的角度(180),那么最终角度为180 + (-45) = 135
        CCFiniteTimeAction *pRotateTo = CCRotateTo::create(3.5, 180);
        CCFiniteTimeAction *pRotateBy = CCRotateBy::create(3.5, -45);
        m_pKathiaSprite->runAction(CCSequence::create(pRotateTo, pRotateBy, NULL));

        bRet = true;
    } while (0);

    return bRet;
}

看注释!!!!

源代码:http://download.csdn.net/detail/woaifen3344/7188071

时间: 2024-08-03 14:20:44

cocos2dx 一步步入门 CCMoveTo/CCMoveBy/CCRotateTo/CCRotateBy的相关文章

Cocos2d-x 3.x入门教程(一):基础概念_C 语言

前言 接触游戏开发时间不长,之前一直都是写Lua,写Lua肯定是没有什么发展的啦,至少你要会写的.写客户端,肯定要看看Cocos2d-x了.从今天起,正式开始Cocos2d-X的学习之旅. 之前一直都是做C++开发的,转过来看Cocos2d-x,从语言上来说,没有多少问题.对于我来说,Cocos2d-x就是一个类库,就类似于MFC.ATL和QT一样,就是一个游戏类库,而我就按照学习类库使用的方法去学习Cocos2d-x.这篇文章叫基础概念,但是还是从整体来说说Cocos2d-x这个类库的. 基础

使用C++进行Cocos2d-x游戏开发入门过程中的要点解析_C 语言

总结了下,新手引导的要点有以下几个: 画面的变化. 触摸和按钮响应. 逻辑处理及代码组织. 下面我们就详细讲述这几个要点: 一.画面的变化. 对个这个不同的游戏的做法不尽相同,归结起来大概有这么几种: 1.画面整体变暗 这个比较简单,cocos2d就有现成接口: CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize(); //第一个参数是颜色ccc4(r,g,b,a) a取值(0~255),越大越不透明 下面两个参数为

Cocos2d-x 3.x入门教程(二):Node节点类_C 语言

千里之行,始于足下 上一篇文章<菜鸟学习Cocos2d-x 3.x--基础概念>中介绍了以下Cocos2d-x的基本结构和一些重要的类,而这里开始对这些重要的类进行单独的介绍与分析.开始吧~~~ Node节点类 Node类是Cocos2d-x中一个非常重要的类,它继承自类Ref,关于Ref类,Ref类是一个内存管理的类,我后续也会总结的,这里就不做多说了. Node类在Cocos2d-x中有多重要呢?任何需要画在屏幕上的对象都是节点类.最常用的节点类包括场景类(Scene).布景层类(Laye

[cocos2d-x]CCAction类详解

1 在一个游戏中有了人物.白云等精灵,但是游戏中精灵静止不动肯定是不行的,要让它们执行一些动作,使精灵有丰富的动画效果,这样就会使用到CCAction类.CCAction主要用于人物角色等发生动作时使用,如紧身肉搏.远程射击和贴近对话等   2 在cocos2d-x中,CCAction的类结构图如下   3 从上面的类结构图可以看出,动作的基类是CCAction,通过继承它可以实现很多不同的动作,主要分为三大类:CCFiniteTimeAction(有限次动作执行类).CCSpeed(节点执行速

CCPlace,CCFlip*,CCToggleVisibility,CCMoveTo*,CCJumpTo*,CCScale*,CCRotate*,CCSkew*,fade,CCCardinalSp*

 1 CCAction动作    CCAction作为一个基类,其实质是一个接口(即抽象类),由它派生的实现类(如运动和转动等)才是我们实际使用的动作.CCAction 的绝大多数实现类都派生自CCFiniteTimeAction.由CCFiniteTimeAction 派生出的两个主要类分别是瞬时动作(CCActionInstant)和持续性动作(CCActionInterval). 2  CCActionInstant瞬时动作 A 总述 瞬时动作是指能立刻完成的动作,是CCFiniteT

自学MVC看这里——全网最全ASP.NET MVC 教程汇总

MVC架构已深得人心,微软也不甘落后,推出了Asp.net MVC.小编特意整理博客园乃至整个网络最具价值的MVC技术原创文章,为想要学习ASP.NET MVC技术的学习者提供一个整合学习入口.本文从Why,What,How三个角度整理MVC 的学习资源,让学习者第一时间找到最有价值的文章,获取最彻底的ASp.NET MVC 框架知识,Let's go!   1. Why :为什么需要ASP.NET MVC 本章主要为大家汇总了为什么学习Asp.net MVC替代WebForms,产生ASP.N

Cocos2dx入门小游戏---Runner教程

本人初学cocos2dx,网上找了个例子,写一遍,自己领悟一翻,现在把自己的理解配上注释, 一步步深入理解这个小程序,希望可以帮助初始入门的朋友们. 首先建立一个Entity实体类,以便怪物类和玩家类可以继承: #include "cocos2d.h" /** * @brief 精灵实体类 * * 绑定精灵.获取精灵 */ class Entity : public cocos2d::CCNode { public: /** @{ * @name 构造函数.析构函数. */ /// 构

Cocos2D-X入门(5)CCAction:动作

瞬时动作 瞬时动作不需要时间,立即完成 //放置,=setPosition() pRole->runAction(CCPlace::create(ccp(300,300))); //隐藏,=setVisible(false) pRole->runAction(CCHide::create()); //显示,=setVisible(true) pRole->runAction(CCShow::create()); //水平翻转,=setFlipX(true) pRole->runAc

Cocos2d-x跨Android&amp;amp;iOS平台开发入门

很好的一篇译文,在此感谢原作者和译者.由于此文写的很早,所以文中提到的一些工具已经升级了,有了一些新的界面和操作,但大体还是能和新版本联系起来的. 原文地址:http://www.cocoachina.com/gamedev/gameengine/2012/0428/4206.html   Cocos2D是一个非常棒而且非常容易使用的游戏框架,但是,由于它是基于objc语言的,所以你只能使用它来开发ios和mac下面的游戏.   假如你可以使用和cocos2d相似的api来开发android上面