SpriteBuilder中节点的%位置移动

在SpriteBuilder中可以将一个节点的位置设为%形式,这意味着在不同的屏幕尺寸中,该节点会定位在相对同一个位置.

比如x和y分别为 50%和50%的位置,在各种屏幕中都会定位到屏幕的中心.

但是我们此时在涉及到移动该节点的代码时需要注意,移动的大小不再是绝对的点的长度,而也变为了相对%比的长度.

比如我要把(50%,50%)位置的节点向下移动整个屏幕1/10的距离,可以这样写:

id move = [CCActionMoveBy actionWithDuration:5 position:ccp(0, -0.1)];
[node runAction:move];
时间: 2024-11-01 13:21:50

SpriteBuilder中节点的%位置移动的相关文章

SpriteBuilder中节点位置类型为百分比时不能定位的解决

Ball.ccb类型是Node,其中有个子节点为Color Node,其中物理使能. MainScene.ccb中加入一个物理节点,将Ball.ccb拖入其中,成为该物理节点的孩子,这时出现了一个"怪"现象: 如果Ball的位置类型为point时,设置其位置坐标(x,y)可以正确反应位置变化.但是只要x或y任一坐标轴位置类型设置为百分比,则Ball在该轴上无法移动. 在这个问题上耽搁了好久,后来发现原因很简单:MainScene.ccb中的物理节点的Content size属性都为0,

SpriteBuilder中子节点的相对位置(%百分比定位)

子节点(或在这里确切的为精灵sprites)50%的偏移效果使得其在父节点中居中显示,该父节点的纹理在左下角(锚点为0,0). 这样做好过用父节点的位置的实际值来定位.根据父节点实际位置来定位在早期的Cocos2D中是一个不幸的设计决定. 最好举个例子来说:比如要添加若干精灵,每一个都是前一个精灵的孩子.你将会注意到每一个新子节点的位置都在其父亲的左下角.如果要将子节点在其父节点中居中显示,最好的做法是添加50%的偏移,因为即使改变锚点也同样能工作. 这是无论任何时候你都能改变节点的锚点而不会造

SpriteBuilder中同父节点的显示顺序

如下图: 到目前为止,GameScene依赖于节点在SpriteBuilder中的顺序去决定其绘制的顺序. level content(_levelNode)被首先绘制,然后GameMenuLayer被画在前者的上面. 不管如何,现在你在代码中删除了_levelNode,然后加载了一个新的并且把它作为GameScene的一个孩子添加进来.添加一个节点将总是将其放在绘制列表的最后面. 因此,绘制顺序现在反转了,所以你不再能看到pause按钮了(其在GameMenuLayer层上). 为了修复这个问

xpath的数据和节点类型以及XPath中节点匹配的基本方法

XPath数据类型 XPath可分为四种数据类型: 节点集(node-set) 节点集是通过路径匹配返回的符合条件的一组节点的集合.其它类型的数据不能转换为节点集. 布尔值(boolean) 由函数或布尔表达式返回的条件匹配值,与一般语言中的布尔值相同,有true和 false两个值.布尔值可以和数值类型.字符串类型相互转换. 字符串(string) 字符串即包含一系列字符的集合,XPath中提供了一系列的字符串函数.字符串可与数值类型.布尔值类型的数据相互转换. 数值(number) 在XPa

SpriteBuilder中物理对象能否被缩放

我前面早些时候提到物理形状不能被缩放. 现在我却说可以缩放它们,这是为啥呢? 好吧,拥有物理物体节点的缩放属性真心不能被动画化或改变在运行的时候; 但是你可以在SpriteBuilder中设置启用物理属性节点的初始的缩放值,所以在项目published时,它将建立一个物理碰撞形状的一个合适的缩放版本.

如何修改SpriteBuilder中的按钮禁用启用状态

按钮的禁用状态和按钮的User Interaction Enabled属性并不相符. 后者设定的是按钮是否参与用户交互. 你不能直接在SpriteBuilder中编译按钮的禁用启用属性.除非你想给按钮添加一个定制属性,该属性名称为enabled;然后设置类型和值分别为Bool和0. 唉,你不可以给按钮添加一个定制属性除非你在按钮的Item Code Connections标签中给按钮指定一个定制类.但是谁说这个类非要是一个真的定制类呢? :) 实际上,你可以输入节点在cocos2d中提供的原始类

treeview能不能按照所在节点的位置进行排序呢?

问题描述 treeview能不能按照所在节点的位置进行排序呢? treeview能不能按照所在节点的位置进行排序呢?怎么对treeview的同级节点进行排序?递归算法可以实现吗? 解决方案 http://www.360doc.com/content/14/1009/22/16325679_415638858.shtml 解决方案二: TreeView是可以排序的,要求在保存TreeView的数据表中,加入"排序 "字段,保存时,将"排序"保存,读入时,按排序先进加入

SpriteBuilder中使用Node类型的ccb动画节点删除时崩溃的问题

因为节点需要呈现动画效果,虽然只有两个不同帧. 在SpriteBuilder中新建Bullet.ccb文件,类型为node. 添加如上2张图片,并制作动画效果帧. 在游戏中子弹遇到障碍物会被删除,时机是随机的.子弹在飞出屏幕时也会被删除. 实际运行App会发现必定崩溃,在子弹随机删除几秒后. 发现Xcode总是中断在动画管理器(CCAnimationManager)中,遂将Bullet.ccb的动画效果删除,没有问题了. 因为Bullet的类型是Node,其self.userObject总为ni

SpriteBuilder中使用TrueType字体的一些障碍

在实践中,有一些小的陷阱和障碍可能阻止你使用一般的TrueType字体. 第一个,必须要有一个有效的字体文件.在Finder中双击该.ttf文件,应该会打开Font Book app,显示一个象形符号的字母表.如果没有显示或发生错误,则改字体很可能是损坏的或者不是正确的字体格式. 接下来你要考虑的是字体名不一定和该字体文件的名字一致.字体有3个名字: 字体文件的名字 字体族的名字(family name) 字体的名字 为了使用SpriteBuilder,字体名字和字体文件的名字(除去文件扩展)应