实例:Cocos2d-x实现画中画效果(转)

1.效果

动画

2.如何实现理论

我们以2张图作为实例。最外面的大图,还有就是红色框框中的图。 这两张图的尺寸是一样的。

准备工作我们就做2件事情:

1)把第二张图缩小,向右旋转添加到第一张图中,看起来还是第一张图

2)把第一张图的锚点设置为紫色的那个点(非常重要,这样缩放才有较好的效果)

用户手指滑动的时候,我们做的事情:

1)第一张图同时run 3个action,放大,向左旋转,位移

移动的位置比较讲究,结果是要把紫色的点移动到屏幕中间。(这个点就比较难计算)

3.实现的难点

1)已知一个精灵中的点,求它对应锚点?

比如一张图片它的宽度是500,高度400. 那么p(200,300)这个点对应的锚点是多少?

float anchorPointX = 200 / width;
float anchorPointY = 300 / height;

就是当前位置的x,y分别除以这个图片的宽,高度。

2)一个精灵本来是在屏幕中心的,现在有一个点p(200,300), 如何移动这个精灵使得,结果是p(200,300)这个点居于屏幕中心?

Vec2 worldPosition = smallSprite->convertToNodeSpace(Vec2(WIN_WIDTH/2, WIN_HEIGHT /2));
Vec2 pos = worldPosition - Vec2(smallSprite->getContentSize().width * 0.5, smallSprite->getContentSize().height * 0.5);

2张图慢慢搞,还是可以成功。那么5,6张图呢?

我尝试过按照2张图那样搞,一次全部添加,缩放会有问题,因为倍数太大了,导致了模糊。所以只能弄成一个组

0,1

1,2

2,3

3,4

4,5

每次都是显示2组,刚开始显示 3,4 ,4,5  这两组,3,4隐藏,显示4,5,在4继续往左滑动就隐藏4,5,显示3,4。一旦用户在3这个状态继续往左滑动,就变成 2,3,3,4这2组。


逻辑是这样,实现起来还是需要费点时间。就这样吧。真正实现出来有成就感。

全部评论

相关推荐

群星之怒:1.照片可以换更好一点的,可以适量P图,带一些发型,遮住额头,最好穿的正式一点,可以适当P图。2.内容太少。建议添加的:求职意向(随着投递岗位动态更改);项目经历(内容太少了建议添加一些说明,技术栈:用到了什么技术,还有你是怎么实现的,比如如何确保数据传输稳定的,角色注册用到了什么技术等等。)项目经历是大头,没有实习是硬伤,如果项目经理不突出的话基本很难过简历筛。3.有些内容不必要,比如自我评价,校内实践。如果实践和工作无关千万别写,不如多丰富丰富项目。4.排版建议:建议排版是先基础信息,然后教育背景(要突出和工作相关的课程),然后专业技能(一定要简短,不要长篇大论,写你会什么,会的程度就可以),然后是项目经历(一定要详细,占整个简历一定要超过一半,甚至超过百分之70都可以)。最后如果有一部分空白的话可以填补上校内获得的专业相关的奖项,没有就写点校园经历和自我评价。5.技术一定要够硬,禁得住拷打。还有作息尽量保证正常,不要太焦虑。我24双非本科还是非科班,秋招春招各找了一段实习结果都没有转正,当时都想噶了,最后6月份在校的尾巴也找到一份工作干到现在,找工作有时很看运气的不要急着自我否定。 加油
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务