zoukankan      html  css  js  c++  java
  • 关于Cocos2d-x中地图轮播的实现

    播放背景,两个背景的图片是一样的,紧挨着循环播放,以下代码写在playBackground()方法中,并在GameScene.cpp的init方法中调用。

    void GameScene::playBackground()
    {

    auto winSize = Director::getInstance()->getWinSize();  //获得OpenGL视图的大小,不是可见屏幕的大小,以点为单位

    int delta = 10; //补缝用的,两个背景紧挨着移动可能出现缝隙,轮播图的像素高应该比设备屏幕高的大一点(+0.01)(其实可以删去) 2.后面的图应该稍微往前靠一点 这样就不会有缝隙了

    auto bg1 = Sprite::createWithSpriteFrameName("background.png");
    bg1->setScaleX(winSize.width / bg1->getContentSize().width);  //让地图的宽和屏幕一样宽
    bg1->setScaleY(winSize.height / bg1->getContentSize().height + 0.01); //让地图的高比屏幕高一点(其实可以设置成一样高,这里+0.01可以删除)
    bg1->setAnchorPoint(Vec2(0, 0));
    addChild(bg1);

    auto move1 = MoveBy::create(30, Vec2(0, -winSize.height));
    auto callfunc1 = CallFunc::create([bg1](){  //设置回调函数,在移动完地图后,执行这个方法,回到最初的位置
      bg1->setPosition(Vec2(0, 0));
    });
    auto action1 = Sequence::create(move1, callfunc1, nullptr);
    bg1->runAction(RepeatForever::create(action1));

    auto bg2 = Sprite::createWithSpriteFrameName("background.png");
    bg2->setScaleX(winSize.width / bg2->getContentSize().width);  //让地图的宽和屏幕一样宽
    bg2->setScaleY(winSize.height / bg2->getContentSize().height + 0.01); //让地图的高比屏幕高一点(其实可以设置成一样高,这里+0.01可以删除)
    bg2->setAnchorPoint(Vec2(0, 0));
    bg2->setPosition(Vec2(0, bg1->getPositionY() + winSize.height - delta));
    addChild(bg2);

    auto move2 = MoveTo::create(30, Vec2(0, 0));
    auto callfunc2 = CallFunc::create([bg2, bg1, winSize, delta](){  //设置回调函数,在移动完地图后,执行这个方法,回到最初的位置
      bg2->setPosition(Vec2(0, bg1->getPositionY() + winSize.height - delta));
    });
    auto action2 = Sequence::create(move2, callfunc2, nullptr);
    bg2->runAction(RepeatForever::create(action2));

    }

  • 相关阅读:
    BZOJ_2588_Spoj 10628. Count on a tree_树剖+主席树
    BZOJ_1901_Zju2112 Dynamic Rankings_树状数组+主席树
    单例模式
    JDBC连接数据库查询信息的步骤(提取成配置文件方式)
    JDBC访问数据库查询信息的步骤(硬编码格式)
    大数据
    accp
    递归
    struts2中Action到底是什么,怎么理解
    转发和重定向的区别(简单解释)
  • 原文地址:https://www.cnblogs.com/HangZhe/p/5762468.html
Copyright © 2011-2022 走看看