代码实现屏幕滚动!
2016-09-06 18:38
246 查看
首先在场景类里获取到两个连续滚动起来无痕迹的图片,放在resource文件夹下,然后代码获取到文件:
后面获取到这些资源之后,就是最主要的步骤:实现图片下移!!
<span style="font-size:18px;"><span style="white-space:pre"> </span>auto b = this->getChildByTag(5);
auto b1 = this->getChildByTag(6); //通过tag值获取资源添加到场景
Size visibleSize = Director::getInstance()->getVisibleSize();
b->setPositionY(b->getPositionY() - 10);
b1->setPositionY(b1->getPositionY() - 10); //图片资源下移10个像素
if (b->getPositionY() + b->getContentSize().height / 2 <= 0){ //判断是否溢出场景
b->setPosition(Vec2(visibleSize.width / 2, visibleSize.height + b->getContentSize().height / 2)); // 复位
}
if (b1->getPositionY() + b1->getContentSize().height / 2 <= 0){
b1->setPosition(Vec2(visibleSize.width / 2, visibleSize.height + b1->getContentSize().height / 2));
}</span>
总的来说最重要的就是算法部分,要理解他其中的逻辑,或者你定义不同的锚点的时候算法或许不同,但是核心还是一样,就是要多理解。
<span style="font-size:18px;"> Size visibleSize = Director::getInstance()->getVisibleSize(); //设置主场景的规格大小 Vec2 origin = Director::getInstance()->getVisibleOrigin(); //设置主场景的坐标点 auto background = Sprite::create("bg.jpg",Rect(0,0,768,1024)); //获取背景1的资源 auto background1 = Sprite::create("bg.jpg", Rect(0, 0, 768, 1024)); //获取背景2 的资源 this->addChild(background,0,5); this->addChild(background1, 0, 6); //将两个资源文件添加显示到场景 background->setAnchorPoint(Vec2(0.5, 0.5)); //设置背景1的锚点坐标 background->setPosition(Vec2(visibleSize.width / 2, visibleSize.height/2)); //将背景1坐标设置为场景的中心点 background1->setAnchorPoint(Vec2(0.5, 0.5)); background1->setPosition(Vec2(visibleSize.width / 2, visibleSize.height / 2 + visibleSize.height));//将背景2的坐标设在背景1的上面,就是高1个场景高度 this->schedule(CC_SCHEDULE_SELECTOR(GameScene::autoremove), 0.1f);</span>
后面获取到这些资源之后,就是最主要的步骤:实现图片下移!!
<span style="font-size:18px;"><span style="white-space:pre"> </span>auto b = this->getChildByTag(5);
auto b1 = this->getChildByTag(6); //通过tag值获取资源添加到场景
Size visibleSize = Director::getInstance()->getVisibleSize();
b->setPositionY(b->getPositionY() - 10);
b1->setPositionY(b1->getPositionY() - 10); //图片资源下移10个像素
if (b->getPositionY() + b->getContentSize().height / 2 <= 0){ //判断是否溢出场景
b->setPosition(Vec2(visibleSize.width / 2, visibleSize.height + b->getContentSize().height / 2)); // 复位
}
if (b1->getPositionY() + b1->getContentSize().height / 2 <= 0){
b1->setPosition(Vec2(visibleSize.width / 2, visibleSize.height + b1->getContentSize().height / 2));
}</span>
总的来说最重要的就是算法部分,要理解他其中的逻辑,或者你定义不同的锚点的时候算法或许不同,但是核心还是一样,就是要多理解。
相关文章推荐
- js实现随屏幕滚动的带缓冲效果的右下角广告代码
- Js实现双击鼠标自动滚动屏幕的示例代码
- Js实现双击鼠标自动滚动屏幕的示例代码
- jquery跟随屏幕滚动效果的实现代码
- Js实现双击鼠标自动滚动屏幕的示例代码
- jquery跟随屏幕滚动效果的实现代码
- JS实现双击屏幕滚动效果代码
- js实现随屏幕滚动的带缓冲效果的右下角广告代码
- JS实现双击屏幕滚动效果代码
- [导入]Asp.net 2.0 自定义控件开发[实现GridView多行表头固定表体滚动效果][示例代码下载]
- Asp.net 2.0 自定义控件开发[实现GridView多行表头固定表体滚动效果][示例代码下载]
- Asp.net 2.0 自定义控件开发[实现GridView多行表头固定表体滚动效果][示例代码下载]
- Asp.net 2.0 自定义控件开发[实现GridView多行表头固定表体滚动效果][示例代码下载]
- Asp.net 2.0 自定义控件开发[实现GridView多行表头固定表体滚动效果][示例代码下载]
- 用javascript实现代替marquee的滚动字幕效果代码
- DIV实现左边表头固定、右边内容滚动的效果代码
- 用javascript实现代替marquee的滚动字幕效果代码
- Asp.net 2.0 自定义控件开发[实现GridView多行表头固定表体滚动效果][示例代码下载]
- Asp.net 2.0 自定义控件开发[实现GridView多行表头固定表体滚动效果][示例代码下载]
- Asp.net 2.0 自定义控件开发[实现GridView多行表头固定表体滚动效果][示例代码下载]