anchor point 究竟是怎么回事? 之所以造成不容易理解的是因为我们平时看待一个图片是 以图片的中心点 这一个维度来决定图片的位置的。而在cocos2d中决定一个 图片的位置是由两个维度 一个是 position 也就是图片的中心点 另外一个是anchor point。只要我们搞清楚他们的关系,自然就迎刃而解。
他们的关系是这样的:
actualPosition.x = position.x + width*(0.5 - anchor_point.x); acturalPosition.y = position.y + height*(0.5 - anchor_point.y)
actualPosition 是sprite实际上在屏幕显示的位置, poistion是 程序设置的, achor_point也是程序设置的。
具体看下面的例子一:
CCSprite *sprite = [CCSprite spritewithFile:@"blackSquare.png"];
sprite.position=ccp(0,0);
sprite.anchorPoint=ccp(0,0);
[self addChild:sprite];
具体效果如下:
根据上面的公式: 假设精灵的width = height = 10.
actualPosition.x = 0 + 10*(0.5 - 0) = 5; actualPosition.y = 0 + 10*(0.5 - 0) = 5;
(5, 5) 这个结果正是现在图片的在屏幕上的实际位置。
例子 二:
CCSprite *sprite = [CCSprite spritewithFile:@"blackSquare.png"];
sprite.position=ccp(0,0);
sprite.anchorPoint=ccp(-1,-1);
[self addChild:sprite];
具体效果如下:
根据上面的公式: 假设精灵的width = height = 10.
actualPosition.x = 0 + 10*(0.5 - (-1)) = 15; actualPosition.y = 0 + 10*(0.5 - (-1)) = 15;
(15, 15) 这个结果正是现在图片的在屏幕上的实际位置。
例子三
CCSprite *sprite = [CCSprite spritewithFile:@"blackSquare.png"];
sprite.anchorPoint=ccp(1,1);
sprite.position=ccp(sprite.contentSize.width , sprite.contentSize.height);
[self addChild:sprite];
根据上面的公式: 假设精灵的width = height = 10.
actualPosition.x = 10 + 10*(0.5 - (1)) = 5; actualPosition.y = 10 + 10*(0.5 - (1)) = 5;
(5, 5) 这个结果正是现在图片的在屏幕上的实际位置。
分享到:
相关推荐
《cocos2d-x AnchorPoint:游戏开发中的关键概念解析》 在cocos2d-x游戏引擎中,AnchorPoint是一个至关重要的概念,它直接影响到游戏中精灵(Sprite)和其他可渲染对象的位置、旋转和缩放行为。理解并熟练运用...
`anchorPoint`是精灵的锚点,用于指定旋转和缩放的中心点。 6. **Menu与MenuItem**:菜单用于展示游戏的交互元素,如按钮。MenuItem是菜单项,可以关联图像和标签等元素。 7. **Action**:动作是cocos2d的核心功能之...
通过调整这些节点的锚点(Anchor Point)、位置(Position)和尺寸(Size),可以实现抽屉从屏幕边缘滑出的效果。同时,为了实现平滑的过渡,可能还会用到`EaseIn`、`EaseOut`或者`EaseExponentialInOut`等缓动函数...
此外,开发者还需要关注节点的锚点(Anchor Point)和大小(Size),确保它们在不同分辨率下能正确缩放。例如,使用相对大小而不是绝对大小,可以避免在不同屏幕尺寸上出现不一致的布局。 在`android`目录下,你...
- **锚点(Anchor Point)**:定义了精灵的中心点,用于旋转和缩放操作。默认情况下,锚点位于精灵的中心(0.5,0.5)。 - **坐标系统**:可以设置精灵的位置和大小。 - **镜像效果**:通过`setFlipX(true)`或`...
然后,通过设置血条节点的锚点(Anchor Point)为(0, 1),使血条的顶部与怪物的底部对齐。当怪物移动时,血条会自动跟随。 4. 动态血量更新:每当怪物受到攻击,需要实时更新血条的宽度。这可以通过监听战斗事件并...
标题“锚点解析1”和描述“锚点解析2014-3-7所谓锚点,就是你要指定你设置的那个点(这个点,一般是用setPosition函数设定的)是图片的那个点(是中点,左上角点还是其他点)”主要探讨了锚点的概念和作用。...
例如,`sprite.anchorPoint=ccp(0,0.5);`将锚点设置在精灵的左下角(x轴为0,y轴为0.5)。锚点的坐标范围在0到1之间,表示相对于精灵尺寸的比例位置。 精灵的位置可通过`position`属性设置,例如`sprite.position=...
在游戏开始时,卡牌应该是正面朝上的,我们可以将卡牌的锚点(Anchor Point)设置为中心,这样翻转动作将围绕中心点进行。同时,可以通过设置`flipX`或`flipY`属性为`false`来确保卡牌初始状态为正面。 3. **实现...
5. 锚点:`anchorPoint`用于定义节点位置的参考点,通常用于实现对齐和旋转效果。 理解这些基本概念后,开发者就能更准确地控制游戏元素在屏幕上的布局和交互,从而创造出丰富的游戏体验。在实际开发中,还需要考虑...
- **锚点(Anchor Point)**:确定节点在其父节点中的相对位置。 - **尺寸(Size)**:节点的大小。 - **可见性(Visible)**:控制节点是否可见。 - **Z顺序(Z-Order)**:决定多个节点之间的显示顺序。 - **...
默认情况下,CCScene的坐标系统原点位于左下角,而其锚点(Anchor Point)是(0.5, 0.5),这意味着场景的中心点被视为坐标系的基准点。 接着,CCLayer是CCScene的子类,通常用于组织和管理游戏中的交互层或逻辑层。...
每个节点都有一个锚点属性(anchorPoint),定义了变换和定位时的参照点,锚点值是以比例形式表示的,不局限于节点内部。节点还可以定期更新,例如在每一帧或特定时间间隔调用回调方法,以实现动态效果或实时检测。 ...
这时,我们可以设置文字的锚点(anchor point)和位置,使其准确地对齐到目标位置。 在《中国好学霸》和《疯狂猜成语》这类游戏中,文字的拖拽和定位是关键的游戏机制。玩家通过拖动文字到正确的位置来完成谜题,这...
- 为了保持平滑的缩放效果,可以采用`ccScaleTo`动作或者`set锚点(point anchor)`配合`setScale()`来实现动画缩放。 3. **地图滑动** - 滑动通常通过改变摄像机的位置来实现。在Cocos2d-x中,我们可以使用`...
确保设置好它们的锚点(anchor point),通常是(0.5, 0.5)以保持居中。 3. 实现触摸事件监听器:Cocos2d-x提供了触摸事件处理机制,如`ccTouchBegan()`, `ccTouchMoved()`, 和`ccTouchEnded()`。在你的游戏层类中...
- 设置Sprite的锚点(anchor point)为0.5, 0.5,使其旋转中心位于图像的中心点。 - 将主角放置在场景合适的位置,可以通过调整坐标(x, y)来完成。 2. **添加用户输入处理** - 创建一个脚本(script)并将其...
你可以加载一个PNG或者SVG图像作为按钮的背景,然后设置其锚点(anchor point)以确保其在屏幕上的位置正确。例如: ```lua local joystickBtn = ccui.Button:create() joystickBtn:setScale9Enabled(true) ...