细说cocos2d坐标系(坐标系,锚点,点击精灵判断)
add: 坐标系作用是说明质点的方向,表明质点位置。坐标系是一个整体的概念。 经典的坐标系是初中时候的笛卡尔平面坐标系和直线坐标系 cocos2d包含两种类型坐标系:屏幕坐标系(UI point)和GL坐标系 屏幕坐标系是较通用的坐标系,如windows和手机屏幕等各种屏幕坐标(二维),如windows的渲染采用directx 3d引擎 cocos2d采用gl坐标,原因在与cocos2d使用opengl ES渲染(这是一种三维的坐标系) 屏幕坐标系图: 2.相对坐标和绝对坐标 绝对坐标(世界坐标),是一个绝对的值,一个值对应坐标系中一个固定的点,无论用在程序的什么地方,都表示同一个点。 相对坐标(本地坐标),是i一个相对值,总是相对于一个参照物来说的。同一个坐标值,相对的物体不同,则表示的点也不同。 每一个点一定有且只有一个绝对坐标,有可能有无数个相对坐标 3.锚点(anchor) 锚点用在设定一个对象位置的时候,表示对象自身的中心点(中心是质点中心,而不是几何中心,不一定是(0.5,0.5)) 类似于一个门牌钉到一个门上,门牌需要一个订书钉,那么这个订书钉就是门牌的锚点,表示门牌的中心点 锚点值范围在门牌自身范围之内,如:obj.anchor=(0,0) 门牌左下角 (1,1)门牌右上角 锚点在ccsprite中默认开启(0.5,0.5),在cclayer中默认关闭,总是左下脚(0,0),设置别的值也无效,可以自己启用 例子:将一个红色方框(200*200),锚点(0.5,0,5 )放到屏幕上100,100的位置。屏幕是父,红框是子 CCSprite* pRed=[CCSprite spriteWithFile:@"1.jpg"];
再放入一个绿框(50*50),锚点(0.5,作为红框的儿子,结果是图1,而不是图2 CCSprite* pGreen=[CCSprite spriteWithFile:@"2.jpg"]; 说明:如下关系情况下:祖父-父-子-孙 (1)设置子在父中位置时,子锚点起作用,与父锚点无关,子永远是拿自己的锚点去钉父的左下角 4.如何判断一个坐标点是否在一个节点中 方法二: localAlas=(-10,-10),rcAlas=(-25,-25,50,50) //CGPoint touchLocation = [touch locationInView: [touch view]]; // touchLocation = [[CCDirector sharedDirector] convertToGL: touchLocation];//touchLocation = [self convertToNodeSpace:touchLocation]; //替换上面三句,实际上也是分为三步来的:touch->UI point->world GL point->Node GL point CGPoint touchLocation = [self convertTouchToNodeSpace:touch]; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ruby-on-rails – 如何在Ruby on Rails中更改部分模式?
- Vue.js+Layer表格数据绑定与实现更新的实例
- ruby-on-rails – 尝试运行rails_upgrade插件并获取fork()错
- ruby-on-rails – 在Rails中如何为模型的新实例生成唯一的序
- 获取硬盘序列号的C++代码
- bootstrap-wysiwyg结合ajax实现图片上传实时刷新功能
- cocos2d-x-2.2.6子类随父类变化setCascadeOpacityEnabled(t
- 详解C语言中的getgrgid()函数和getgrnam()函数
- VUE框架与其他前端框架比较
- 正则表达式验证只能输入中文