Cocos2d-x中的坐标系

绘图坐标系。它是最常见的坐标系,与OpenGL采用的坐标系相同,以左下角为原点,向右为x轴正方向,向上为y轴正方 向,如图 3-1 所示。在 Cocos2d-x 中,一切绘图相关的操作都使用绘图坐标系,如游戏元素中的 Position 和 AnchorPoint 等属性。

纹理坐标系。纹理坐标系以左上角为原点,向右为x轴正方向,向下为y轴正方向,如图3-2所示。在Cocos2d-x中,只

有从纹理中截取部分矩形时才使用这个坐标系,如 CCSprite 的 TextureRect 属性。

简单地接触了Cocos2d-x中的坐标系后,下面我们来介绍CCSprite所拥有的绘图相关属性。利用这些属性,我们可以对精 灵呈现的方式进行精确的控制

CCRect ContentSize:获取或设置此节点的内容大小。任何一个节点都需要确定它的内容大小,以便进行图形变换。对于

精灵来说,ContentSize 是它的纹理显示部分的大小;对于层或场景等全屏的大型节点来说,ContentSize 则是屏幕大小。

CCPointAnchorPoint与CCPointPosition:AnchorPoint用于设置一个锚点,以便精确地控制节点的位置和变换。 AnchorPoint 的两个参量 x 和 y 的取值通常都是 0 到 1 之间的实数,表示锚点相对于节点长宽的位置。例如,把节点左下角 作为锚点,值为(0,0);把节点的中心作为锚点,值为(0.5,0.5);把节点右下角作为锚点,值为(1,0)。精灵的 AnchorPoint 默认值为(0.5,0.5),其他节点的默认值为(0,0)。图 3-3 演示了精灵三个不同锚点的值及其位置。

Position用于设置节点的位置。由于Position指的是锚点在父节点中的坐标值,节点显示的位置通常与锚点有关。

因此,如果层与场景保持默认的位置,只需把层中精灵位置设为窗口长宽的一半即可让它显示在屏幕中央。

  • 对于场景或层等大型节点,它们的IgnoreAnchorPointForPosition属性为true,此时引擎会认为AnchorPoint永远为(0,0);

    而其他节点的该属性为 flase,它们的锚点不会被忽略。

  • ?   float Rotation:获取或设置节点的旋转角度。节点以自己的锚点为中心顺时针旋转一定量,单位是角度。旋转角度可以 是任意实数。
  • ?   floatScale(以及floatScaleX与floatScaleY):Scale用于获取或设置节点的缩放比例。节点以锚点为中心缩放该 比例。Scale 的值代表整体缩放比例,而 ScaleX 与 ScaleY 分别代表 X 方向与 Y 方向的缩放比例。默认情况下,这三个属性 的值都是 1,表示节点不被缩放。如果设置 Scale 属性,则 ScaleX 和 ScaleY 都会随之变为相同的值。当然,我们也可以给 ScaleX 与 ScaleY 设置不同的值,那样 Scale 属性的值就没有意义了。

?   boolVisible:获取或设置节点的可见性。当Visible为true时,节点会被显示,反之节点不会被显示。在节点不被显示 的时候,也不会被调用绘图方法(visit 与 draw)。这个属性与众不同的是,它的访问器没有遵循属性的命名规范。以下 为它的访问器方法:

ccnode  属性

   

CCArray* Children

? 获取保存了该节点所有子引用的数组


? CCNode* Parent


? 获取或设置该节点的父节点


? CCCamera* CameraRETURN


? 获取或设置该节点的摄像机状态。摄像机 ? (CCCamera)定义了绘制该节点时的视点, ? 通常用于实现特效


? CCGridBase* Grid


? 获取或设置该节点的网格特效状态。网格应用 ? 于绘图平面上,可以实现水纹等3D特效


? CCGLProgram* ShaderProgram


? 获取或设置该节点的Shader程序。CCGLProgram ? 是OpenGL的glProgram的封装

? CCActionManager*ActionManager

? 获取或设置该节点所使用的动作管理器。当为节
? 点设置了新的动作管理器时,正在执行的动作
? 都会被丢弃。动作管理器的相关内容将在第4章介绍

46

Cocos2d-x 高级开发教程


? CCScheduler* Scheduler


? 获取或设置该节点所使用的计时器管理器。 ? 当为节点设置了新的计时器管理器时,
? 正在运行的计时器都会被丢弃

节点的组织


? 方法


? 描述


? addChild(CCNode* child)


? 把child添加到当前节点之中


? removeFromParentAndCleanup ? (bool cleanup)


? 把当前节点从其父节点中移除,如果 ? cleanup为true,则执行clean方法


? removeChild(CCNode* child, ? bool cleanup)


? 从当前节点中移除child节点,如果
? cleanup为true,则调用child的clean方法


? removeChildByTag(int ? tag, bool cleanup)


? 从当前节点中移除标号为tag的节点


? removeAllChildrenWithCleanup ? (bool cleanup)

? 移除当前节点的所有子节点


? getChildByTag(int tag)


? 返回当前节点中标号为tag的节点


? cleanup


? 停止此节点的全部动作与计时器

Cocos2d-x中的坐标系,布布扣,bubuko.com

时间: 2024-11-05 11:55:12

Cocos2d-x中的坐标系的相关文章

Halcon中的坐标系特点及XLD的镜像转换

我们知道,Halcon中的坐标系的原点在左上角,而一般二维平面坐标系的原点在左下角.那么Halcon中坐标系和一般的二维坐标系有什么区别你?我通过下面这个例子来分析. 1 gen_image_const (Image, 'byte', 512, 512) 2 dev_set_draw ('margin') 3 4 *点1 5 gen_circle (Circle1, 10, 10, 3) 6 disp_message (3600, '(10 ,10)', 'image', 2, 18, 'whi

如何在Cocos2D游戏中实现A*寻路算法(一)

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流之用,请勿进行商业用途.同时,转载时不要移除本申明.如产生任何纠纷,均与本博客所有人.发表该翻译稿之人无任何关系.谢谢合作! 该篇博客由iOS课程团队的Johann Fradj发布,他现在是一个全职开发iOS的开发者.他是Hot Apps Factory(其是App Cooker的创造者)的共同创建

ArcGIS中的坐标系定义与转换 (转载)

原文:ArcGIS中的坐标系定义与转换 (转载) 1.基准面概念:  GIS中的坐标系定义由基准面和地图投影两组参数确定,而基准面的定义则由特定椭球体及其对应的转换参数确定,因此欲正确定义GIS系统坐标系,首先必须弄清地球椭球体(Ellipsoid).大地基准面(Datum)及地图投影(Projection)三者的基本概念及它们之间的关系.   基准面是利用特定椭球体对特定地区地球表面的逼近,因此每个国家或地区均有各自的基准面,我们通常称谓的北京54坐标系.西安80坐标系实际上指的是我国的两个大

c# winform 中的坐标系

从数学角度讲,Point是一个二维矢量,包含两个公共整型属性,属性用大写X和Y(c#中公共属性一般约定以大写字母开头).当坐标不是整数值是float时,用PointF代替Point使用. 常用的Size和Point结构其实相同,也有两个整型属性Width和Height,也有变体SizeF,但两者使用方式不同.Point是说明实体在什么地方,而Size用于说明实体多大,它们之间可以显示转换.一个Point和一个Size可以组成一个Rectangle.另外Point和Size可以进行加减运算:poi

如何在几何画板中定义坐标系

几何画板是一种常见的数学软件,它的功能是非常的多的.今天我们来给大家介绍介绍如何在几何画板中定义坐标系?定义坐标系是几何画板“绘图”菜单中的第一个命令,用户朋友们可以用它建立或定义一个坐标系:包括坐标原点.单位长度.坐标轴等. 一旦建立或定义好一个坐标系,这个命令项就变成了灰色不可用状态,如果想隐藏坐标系,需安装Shift键,单击“绘图”菜单,才可显示出“隐藏坐标系”命令.另外,在建立或定义坐标系之前,是否选择了其他几何对象.选择了什么几何对象,也会影响“绘图”菜单中的第一个命令项的功能. 1.

cocos2d-x 中的坐标系

cocos2d-x 中的坐标系是笛卡尔坐标系,向右为 x 轴正方向,向上为 y 轴正方向,以像素为单位 原点在屏幕左下角的坐标系叫世界坐标系,是整个游戏中的根基,直接添加到场景中的节点,设置的位置都是指世界坐标系,getPosition 返回的都是世界坐标系 每个节点都可以当做一个坐标系,节点坐标系的原点位于其内容的左下角,节点添加子节点时, 子节点设置的位置,按照父节点的坐标系,当父节点的坐标变化时,子节点也做相同的变化,即子节点相对父节点不变:节点坐标系是坐标系中的坐标系,分析某个节点坐标一

关于天文中的坐标系的介绍

(欢迎我们天文理科人龙年第一贴. 坐标系是物理学里最基础,最重要, 可能也是最难的概念之一. 而在天文学中,包括天体物理和天体力学,坐标系则更为直接和重要,可以说是天文基础研究中的基础. 还有很多同学是从其它专业转到天文领域,或者对天文领域有一些兴趣,但是没有进行过天文基础的系统学习. 在不同坐标系统之间的变换,很容易出错,而且出错的话会弄大笑话. 我也曾经犯过按照B1950的坐标来测J2000的源表的错误,当测一个发射很强的源却发现是non-detection, 的这时候才意识到这种低级错误,

ArcGIS中的坐标系:基本概念和常用操作(一)

本文呢是主要是借鉴李郎平李大大的博士论文和百度百科,里面还有一点点我自己的理解,希望能帮助自己加深对于坐标系的认识. 李大大的博客:http://blog.sciencenet.cn/u/Brume 一.两种坐标系 坐标系其实很多,但是大类上分为两种坐标系——“地理坐标系”和“投影坐标系” 我们一般说的“投影”其实是坐标系的一种参数,有投影变形的称为“投影坐标系”,没有“投影”的称为“地理坐标系”. 地理坐标系进行地图投影后就变成了投影坐标系.地图投影(Map Projection)是按照一定的

Coco2d-x中的坐标系问题

(1)OpenGL坐标系 Cocos2D-x以OpenGL和OpenGL ES为基础,所以自然支持OpenGL坐标系.该坐标系原点在屏幕左下角,x轴向右,y轴向上. (2)屏幕坐标系 屏幕坐标系使用的是不同的坐标系统,原点在屏幕左上角,x轴向右,y轴向下.iOS的屏幕触摸事件CCTouch传入的位置信息使用的是该坐标系.因此在Cocos2D-x中对触摸事件做出响应前,需要首先把触摸点转化到OpenGL坐标系.这一点在后面的触屏信息中会详细介绍,可以使用CCDirector的convertToGL