請問如何讓一個垂直的圖片一直滾動?

這是一個8張高山流水的圖片,連續播出?它是垂直的,不是數字片。感謝!

不停的update图片的位置不就行了么。

不知道你要表达什么。。。。

就跟播放动画一样一个图一个帧,连续重复播放就好了嘛

可以用uv滚动的方式

一图一帧?那直接做成帧动画不就好?你需要先把这8张图片切成8张,然后做成合图。

首先不知道楼主想要做什么效果,如果只是这幅图滚动,就用moveto加个判断就好了
如果是想做成动画的话就是一个小图一个帧,不用切成八张,只要根据图片的高度算出每张小图的高度,然后在程序里面写出每一帧显示的图片范围就可以了

切小图的确是个办法,但不是长久之计,最正确的方法就是用合图,不用你去计算高度,不用一张一张添加,合图自动全部搞定。
即省事,又安全。
不过楼主这几张图片看上去貌似一模一样,不知道做成动画有什么意义。

当然用你说的合图是最好的,代码就省,也最方便.
但是如果有很多这样的图片的话要一张一张的切.
楼主这个图片看上去一样的,其实是水流的地方有差别,
我调试了一下就是个水在动的图片.

代码(cocos2dx 3.6):

    //加载图片
     auto visibleSize = Director::getInstance()->getVisibleSize();
    auto texture = Director::getInstance()->getTextureCache()->addImage("liushui.png");//把大图片保存成liushui.png.放到resource目录下
    auto imageSize=texture->getContentSize();
    auto imageHeigh = imageSize.height / 8;
    auto imageWidth = imageSize.width;

    //保存图片帧
    //Vector array;
    Vector array;
    for (int i = 0; i < 8; i++){
        auto frame = SpriteFrame::createWithTexture(texture, Rect(imageWidth * 0, imageHeigh * i, imageWidth, imageHeigh));
        array.pushBack(frame);
    }

    auto sprite2 = Sprite::createWithSpriteFrame((SpriteFrame*)array.at(0));
    sprite2->setPosition(Vec2(visibleSize.width / 2, visibleSize.height / 2));
    this->addChild(sprite2);
    //播放动画
    auto animation2 = Animation::createWithSpriteFrames(array, 0.2f);   //此处根据容器中的图片帧播放动画,createWithSpriteFrames()函数每帧间隔时间参数,需自行加上去!!!
    sprite2->runAction(RepeatForever::create(Animate::create(animation2)));

请把代码粘贴在这里


```