zoukankan      html  css  js  c++  java
  • cocos2dx 菜鸟实习生学习篇(四) 锚点的理解

    这两天一直都在看http://www.cnblogs.com/cocos2d-x/archive/2012/03/01/2376143.html 的博客,

    不得不再强调一遍,这博客讲的非常详细,绝对适合新手去看,受益匪浅。

    昨天用了半天来研究这篇博客,这个例子讲的很具体,以前的一些疑惑都有豁然开朗的感觉(咋感觉我在拍广告?),其中对于锚点这个词,我觉得很有必要把我的理解拿出来分享下。这货绝对是相当的重要哇!

    首先要了解下坐标系:

    一般意义上的坐标系为笛卡尔坐标系(应该是初中平面几何开始讲的吧,高中立体几何扩展到三维空间。):

    不同的图形库采用不同的坐标系。iPhone平台提供了两种绘图库:Quartz 2D和OpenGL ES。其中Quartz 2D是Core Graphics绘图库的子集,OpenGL ES是跨平台图形库OpenGL的嵌入设备版。这两者的坐标系原点不一样。

    Quartz 2D的原点在左上角:

    大多数图形窗口应用程序都采用类似的坐标系。这是一种基于虚拟“画布”绘图模型的图形库,绘图指令按次序向“画布”上画下不同的内容,后画的内容会覆盖先画的内容(透明的除外)。这比较容易理解。

    OpenGL ES的原点在左下角:

    OpenGL ES相对比较复杂,这实际上是一个3D的绘图库,按照“状态机”模型设计的绘图库。他不是简单地让后者叠加在前者上面,而是记录各个绘制内容的三维位置关系,再按照系统设定的投影关系,将绘制的所有内容投影在某个特定的虚拟窗口上。
    cocos2d-x是基于OpenGL ES的,所以请大家牢记我们使用笛卡尔坐标系,坐标系的原点在左下角。

    然后开始讲锚点:

    为了将一个矩形图像精准地放置在屏幕某一位置上,需要设置该矩形的位置参考点。通常人们习惯于将该参考点设置在矩形的左上角上,而在cocos2d-x中我们称其为锚点,默认位置在矩形的中心。

    2)Position(位置)

    Position就是CCNode对象实际的OpenGL ES坐标。

    下图说明了如何利用这两个属性来设置CCNode对象的显示位置:

    图中红色矩形框的Position为(5, 5),anchorPoint为(0.3,0.5)。若要选择紫色大圆点A为锚点,则设置anchorPoint为(0, 0),如要选择粉红色大圆点B为锚点,则设置anchorPoint为(1,1)。显然设置为(0.5, 0.5)时,锚点位于矩形对象的几何中心点C,这是CCSprite类对象的默认anchorPoint值。

     

     

    lbScore->setAnchorPoint(ccp(1, 1));这个是实现显示时间的,这时候如果锚点设置成,0,0,那么游戏画面将看不到时间,或者说只能看到一点。

    设置时间显示位置就是在锚点的基础上进行设置的。


    总感觉讲不清楚。。。

     

  • 相关阅读:
    百度编辑器粘贴word图片且图片文件自动上传功能
    百度ueditor粘贴word图片且图片文件自动上传功能
    ueditor粘贴word图片且图片文件自动上传功能
    fckeditor粘贴word图片且图片文件自动上传功能
    HTML编辑器如何能实现直接粘贴把图片上传到服务器中
    网页编辑器如何能实现直接粘贴把图片上传到服务器中
    富文本编辑器如何能实现直接粘贴把图片上传到服务器中
    文本编辑器如何能实现直接粘贴把图片上传到服务器中
    VUE大文件上传支持断点上传
    matlab中矩阵的点乘(.*)
  • 原文地址:https://www.cnblogs.com/start530/p/3834370.html
Copyright © 2011-2022 走看看