• 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,那么游戏画面将看不到时间,或者说只能看到一点。

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


    总感觉讲不清楚。。。

     

  • 相关阅读:
    记通过身份证号计算是否成年
    mysql出现which is not functionally dependent on columns in GROUP BY clause报错
    Git操作之 git add 撤销、git commit 撤销
    laraval ueditor 上传图片失败
    jquery调用百度api连接实现网页实时刷新汇率
    Laravel框架使用maatwebsite/excel 导出表格样式自定义
    数字千分位格式化
    laravel 5.4 解决使用Excel::load()导入的excel文件中日期格式变为数字
    layui select可以使用jQuery的change事件
    Linux系统通过命令修改BT宝塔面板的默认8888端口
  • 原文地址:https://www.cnblogs.com/start530/p/3834370.html
Copyright © 2020-2023  润新知