文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

零基础学习之教你如何用Cocos2D实现画中画效果

懒人小魔法师

懒人小魔法师

2024-04-23 23:09

关注

  没学过Cocos2D?没关系,多看看我们的教程,一步步成为游戏开发大神。本篇教程将教你如何用Cocos2D实现画中画效果。

  1.如何实现理论

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

零基础学习之教你如何用Cocos2D实现画中画效果_零基础Cocos2D_Cocos2D学习_Cocos2D_编程学习网

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

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

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

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

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

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

  2.实现的难点

  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组。

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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     654人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     296人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     256人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     356人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     160人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-游戏开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯