经常用到的视觉差parallax
2016-06-15 15:33
274 查看
auto winSize = Director::getInstance()->getWinSize(); Sprite *bg = Sprite::create("HelloWorld.png"); bg->setAnchorPoint(Vec2(0,0)); Sprite *ball = Sprite::create("sprite.png"); ball->setAnchorPoint(Vec2(0.5,0.5)); Sprite *samll = Sprite::create("sprite.png"); samll->setAnchorPoint(Vec2(0,0)); ParallaxNode *parallaxNode = ParallaxNode::create(); this->addChild(parallaxNode,0,"parall"); parallaxNode->addChild(bg,0,Vec2(0.2,0.2),Vec2(0,0)); parallaxNode->addChild(ball,1,Vec2(1,1),Vec2(winSize.width/2,winSize.height/2)); parallaxNode->addChild(samll,1,Vec2(1,1),Vec2(0,0)); auto e = EventListenerTouchOneByOne::create(); e->onTouchBegan = [bg, ball, samll, parallaxNode](Touch*t, Event*e) { return true; }; e->onTouchMoved = [bg, ball, samll, parallaxNode](Touch*t, Event*e) { Vec2 delta = t->getDelta(); parallaxNode->setPosition(parallaxNode->getPosition()+delta); }; e->onTouchEnded = [bg, ball, samll, parallaxNode](Touch*t, Event*e) { log("x= %.2f y=%.2f",bg->getPositionX(),bg->getPositionY()); log("x= %.2f y=%.2f", ball->getPositionX(), ball->getPositionY()); log("x= %.2f y=%.2f", samll->getPositionX(), samll->getPositionY()); log("x= %.2f y=%.2f", parallaxNode->getPositionX(), parallaxNode->getPositionY()); }; auto es = this->getEventDispatcher(); es->addEventListenerWithSceneGraphPriority(e, this); return true;
parallax 的 void addChild(Node * child, int z, const Vec2& parallaxRatio, const Vec2& positionOffset);函数
child 为添加的Node 节点 渲染循序 parallaxRatio为相对于parallaxNode 节点比率 如 parallaxNode 移动100 比率为0.5则移动50 positionOffset为开始设定相对于paallaxNode锚点的位子
此函数 常常用在 游戏 地图移动比如: 玛丽奥,魂斗罗等等游戏 可见到
相关文章推荐
- Android利用Intent启动和关闭Activity
- 安卓开发中Theme.AppCompat.Light的解决方法
- 【Android】Android Camera实时数据采集及通过MediaCodec硬编码编码数据的流程
- rsyslogd配置文件详解
- SaltStack 入门(赵班长)
- seo优化urlrewrite伪静态技术
- java获取随机字母数字组合
- kubernets 架构设计 第3章 网络
- C#点击只打开一个窗体
- Xcode 8.0 Beta发布,详解Swift语言的重大变化
- python 笔记
- memset
- MySQL 性能监控4大指标——第二部分
- log4j日志输出性能优化-缓存、异步
- 软件的模块化开发
- Java日志组件1---Jdk自带Logger(java.util.logging.Logger)
- hessian学习基础篇——序列化和反序列化
- 知道你的代码哪里出了问题吗?——由控件实例化引发的运行崩溃
- Spring学习(二)
- Java NIO原理图文分析及代码实现