加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

cocos2d-x 让小球滚动起来

发布时间:2020-12-14 16:58:33 所属栏目:百科 来源:网络整理
导读:我看的极客学院上的视频,于是自己也动手实现一下,毕竟自己才刚开始学习cocos2d-x 看代码把: 这个是HelloWorld类,继承LayerColor class HelloWorld : public cocos2d::LayerColor{ public : static cocos2d::Scene* createScene (); virtual bool init();

我看的极客学院上的视频,于是自己也动手实现一下,毕竟自己才刚开始学习cocos2d-x

看代码把:

这个是HelloWorld类,继承LayerColor

class HelloWorld : public cocos2d::LayerColor
{
public:
    static cocos2d::Scene* createScene();

    virtual bool init();  
    virtual void update(float dt);//这里的update函数是重写了scheduleUpdate里面的update函数,一开始写成了updata,于是小球根本就不会动,这个函数的名字不能错的

    void menuCloseCallback(cocos2d::Ref* pSender);

    CREATE_FUNC(HelloWorld);
private:
    cocos2d::Sprite *  ball;//这里是一个小球
};

这是init函数

bool HelloWorld::init()
{
    //////////////////////////////
    // 1. super init first
    if (!LayerColor::initWithColor(Color4B(255,255,255)))
    {
        return false;
    }

    Size visibleSize = Director::getInstance()->getVisibleSize();
    Vec2 origin = Director::getInstance()->getVisibleOrigin();
    //auto b = Sprite::create("p3.png");
    //b->setPosition(200,200);
    //addChild(b);// addChild(b);//一开始是这样子的,这样的代码可以创建出一个小球出来

    ball = Sprite::create("p2.png");
    addChild(ball);
    ball->setPosition(200,200);
    //b->runAction(MoveBy::create(1,Vec2(100,0)));
    //b->runAction(RepeatForever::create(MoveBy::create( 1,0))));
    //这里的runAction也可以让小球运动,但是想要精确的控制小球的运动,还是需要scheduleUpdate函数来实现
    scheduleUpdate();//我们需要自己重写update函数来达到自己想要的目的
    return true;
}

我们自己重写update函数达到自己的目的
主要是为了小球的越界返回原点处理

void HelloWorld::update(float dt)
{
    ball->setPositionX(ball->getPositionX() + 5);//每一帧移动5像素
    Size visibleSize = Director::getInstance()->getVisibleSize();
    //这里是得到可视窗口的大小
    if (ball->getPositionX() > (visibleSize.width + ball->getContentSize().width / 2))
    {//如果要出界了,那我们就要把小球返回原来的初始位置
        ball->setPositionX(ball->getContentSize().width/2);

    }

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读