声  明


本教程仅用于初学cocos2dx同学使用,内容由本人(孤狼)学习过程中笔记编写,本教程使用cocos2dx版本为2.1.4。本教程内容可以自由转载,但必须同时附带本声明,或注明出处。

gl.paea.cn版权所有。

Hello,大家好,欢迎回到“和屌丝一起学coco2dx”系列教程,上次我们一起用“CCprogressTo”做了一个小红警,不知道大家做出来没有呢?是不是感觉自己有上升了一步呢?有人问我,有没有更快的学习方法,能让自己快点做出来游戏,这里呢我的意见是,没有一口吃出来的胖子,所以大家还是要一步一个阶梯,一步一个脚印的向上走,不要着急,慢慢的你会成功的。好了今天我们说下一个比较常见的背景操作-“CCScrollView”。

【一】:为啥学他


我们在玩游戏的时候,经常会看到可以拖动的背景,那么这个“CCScrollView”呢,就是用来实现这个效果的。

【二】:函数


1.创建:

[1]:CCScrollView::creater("滚动视图尺寸","滚动视图容器");

[2]:CCScrollView::creater();        //默认视图尺寸为200*200

2.操作:

[1]:isDragging();                                      //判断用户是否在操作

[2]:isTouchMoved();                                //判断用户是否在移动

[3]:isBounceable();                                  //是否开启弹性效果

[4]:setContainer("CCNode对象");         //设置容器

[5]:setViewSize("CCSize类型");           //设置视图尺寸

[6]:setBounceable();                                //设置弹性效果

[7]:CCNode * getContainer();                 //获取容器

[8]:CCSize getViewSize();                      //获取滚动视图的尺寸

[9]:virual void scrollViewDidScroll();      //有滚动时的响应函数

[10]:virual void scrollViewDidZoom();    //缩放时的响应函数

【三】:尺寸设置问题


创建这样的滚动视图,就是把很多精灵都排列在一个layer层里,然后用滚动视图来加载这个layer,最后显示这个滚动视图。我们可以想到就是把图片拼合成一个长条,然后滑动来显示。比如这样:

我们看到我们拼合出来的layer长度是3倍屏宽,所以我们要把我们的滚动视图设置为1倍屏宽,这样我们才能完整的滚完3张图,如果你把滚动视图也设置为3倍,那么就会停留在第一张图那里滚动不了了,因为系统检测到,已经滚完了。懂了吧。

【四】:示例

1.创建项目Scrollviewdemo(真想省了这个步骤)。

2.准备一些图片,这里我给大家提供了一些。

Scrollviewdemo.h

1.包含文件 “cocos-ext.h”    #include "cocos-ext.h"

2.引用命名空间 extension using namespace cocos2d::extension;

3.继承CCScrollViewDelegate public CCScrollViewDelegate

4.写好2个响应函数

virtual void scrollViewDidScroll(CCScrollView * view);

virtual void scrollViewDidZoom(CCScrollView * view);

Scrollviewdemo.cpp


1.载入3张图片

2.引用命名空间 extension using namespace cocos2d::extension;

3.在初始化里写

CCSize mysize=CCDirector::sharedDirector()->getWinSize();

//先创建个层

CCLayer * scrollviewlayer=CCLayer::create();

//再创建3个精灵

CCSprite * sp1=CCSprite::create("1.jpg");

//这里注意一下,第一个精灵的位置mysize.width*0.5

sp1->setPosition(ccp(mysize.width*(1*2-1)*0.5,mysize.height/2));

CCSprite * sp2=CCSprite::create("2.jpg");

//这里注意一下,第二个精灵的位置mysize.width*1.5

sp2->setPosition(ccp(mysize.width*(2*2-1)*0.5,mysize.height/2));

CCSprite * sp3=CCSprite::create("3.jpg");

//这里注意一下,第三个精灵的位置mysize.width*2.5

sp3->setPosition(ccp(mysize.width*(3*2-1)*0.5,mysize.height/2));

//把3个精灵都加载到容器中去(scrollviewlayer)

scrollviewlayer->addChild(sp1);

scrollviewlayer->addChild(sp2);

scrollviewlayer->addChild(sp3);

//设置容器大小

scrollviewlayer->setContentSize(CCSizeMake(mysize.width*3,mysize.height));

//创建滚动视图

CCScrollView * myscroll=CCScrollView::create(CCSizeMake(mysize.width,mysize.height),scrollviewlayer);

//这里我们关闭弹性

myscroll->setBounceable(false);

//这里注意一下,我们添加的是滚动视图,不是layer

this->addChild(myscroll);

4.实现2个响应函数(我这里就不操作了)

void Scrollviewdemo::scrollViewDidScroll(CCScrollView * view){

//一些操作

}

void Scrollviewdemo::scrollViewDidZoom(CCScrollView * view){

//一些操作

}

好了以后我们就开始来实验一下吧。

本节DEMO下载

转载请注明出处:http://gl.paea.cn/cocos2d-x/content/2015/02/09/20.html

转载于:https://www.cnblogs.com/Anzhongliu/p/6091982.html

cocos2dx-CCScrollView的制作相关推荐

  1. Cocos2d-x v3.6制作射箭游戏(二)

    原文 Cocos2d-x v3.6制作射箭游戏(二) 六 24, 2015by RENSHANin COCOS2D-X 上章我们创建并加载了游戏地图,接下来的两章我们将实现如下的效果. 在开始之前,先 ...

  2. cocos2d-x CCScrollView和CCTableView的使用(转载)

    转载请注明来自:Alex Zhou的程序世界,本文链接:http://codingnow.cn/cocos2d-x/1024.html //============================== ...

  3. cocos2d-x 3 0 制作横版格斗游戏

    转自:http://philon.cn/post/cocos2d-x-3.0-zhi-zuo-heng-ban-ge-dou-you-xi cocos2d-x: v3.0-alpha-pre Wind ...

  4. Cocos2d-x 3.0 制作横版格斗游戏2

    转载:https://blog.csdn.net/bridge001/article/details/18882575 git:https://github.com/pj2933/fight2d co ...

  5. cocos2d-x 3.0 制作横版格斗游戏

    cocos2d-x: v3.0-alpha-pre Windows环境: Windows8 + Visual Studio 2012 Linux环境: Ubuntu12.04 + gcc 4.7.2 ...

  6. 如何使用Cocos2d-x 3.0制作基于tilemap的游戏:第一部分

    程序截图: 本教程将会教大家如何使用Cocos2d-x来做一个基于tile地图的游戏,当然还有Tiled地图编辑器.(我们小时候玩的小霸王小学机里面的游戏,大部分都是基于tile地图的游戏,如坦克大战 ...

  7. 基于cocos-2dx的游戏制作——I wanna save the princess

    在进行了两周的cocos学习之后,可以开始进行游戏的创作了. I wanna主要复杂的地方在于地图的设计以及逻辑实现.下面依次进行介绍.(使用c++) 一. 瓦片地图--tile map 1. 地图整 ...

  8. cocos2d-x 使用Box2d制作的台球游戏

    1.效果图(动态gif图在底部): 这是一个简单的台球游戏,点击白色球,在拖动鼠标就会显示球杆,放手后,球杆就碰白球,游戏就开始了.我之前认为做这样一个逼真的台球游戏是很难的,没有想到在Box2d物理 ...

  9. cocos2dx 3D游戏制作参考

    (以下内容依据Cocos秋季峰会演讲速记稿整理) 主持人王哲: 前面几个演讲人展示了不同的技术解决方案. 第一种是<三国之刃>用Flash完成所有动画.UI制作,然后用JSFL开发一个Fl ...

  10. wp7使用Cocos2d-X for XNA制作一个塔防类游戏 (二)在游戏中加入地图和怪物。(上)

    地图编辑器的使用 首先先来介绍一下使用地图编辑器tIDE Tile Map Editor来生成TMX文件.tIDE Tile Map Editor的下载地址  http://tide.codeplex ...

最新文章

  1. Protobuf windows
  2. 黄聪:如何用代码设置控制自己网站的网页在360浏览器打开时强制优先使用极速模式,而非兼容模式...
  3. 单页面二改套后台,后台采用的是迅睿CMS框架
  4. SqlServer为什么自动在主键上建立聚集索引
  5. docker 私服搭建以及镜像部署
  6. 【Hadoop】新旧Java MapReduce API的差异
  7. 序列化与反序列化二叉树
  8. jQuery橙色的网页右侧悬浮在线客服代码
  9. 《暗时间》读书笔记及读后感
  10. 线性链表 — 单链表
  11. Composition API使用记录
  12. 一行脚本批量下载哔哩哔哩视频
  13. 马云:让员工家属走进阿里巴巴
  14. 再探JS---eval函数
  15. 百度谷歌一起搜 - 百Google度 - Chrome插件
  16. 基于51的双机通信系统
  17. 《C++新经典Linux C++通信架构实战》第1章 课程介绍
  18. bzoj3054 Rainbow的信号(位运算+瞎搞)
  19. xxl-job新增执行器
  20. 罗斯蒙特3051迈进自动调节仪表系统

热门文章

  1. python语言安装-Python安装
  2. python自学视频教程-私藏已久的7个Python视频教程
  3. python图片-利用python进行识别相似图片(一)
  4. python比较好的书籍推荐-推荐几本2019年初学者学习Python最佳书籍!
  5. python3爬虫实例-Python3 爬虫实例(一)-- 简单网页抓取
  6. python培训班哪些比较好-学习Python去哪好?哪家Python培训机构比较靠谱
  7. python3.6.0安装教程-centos6.9安装python3.6.0和模块
  8. 精通python能干什么-转行做数据分析,是否需要精通python?
  9. python处理excel表格实例-使用Python操作excel文件的实例代码
  10. python入门基础代码图-【01】Python基础入门 (全)