关于锚点的疑惑

  • 本帖最后由 sailorfeng 于 2012-7-14 11:36 编辑 *

我是初学者,对CCNode的默认锚点在中间有点疑惑。
例如,如果锚点在左上角,要定义Node A的右边紧挨着Node B,只需要
b.setPostion(a.x + a.width, a.y)
但现在要
b.setPostion(a.x + (a.width + b.width)/2, a.y),要同时获取两个Node的宽度

如果a.width不是偶数,除2后究竟是忽略掉小数部分还是进1?这之间相差1个像素。

也可能是我不习惯这样设定吧,有人能解答一下吗?或者有方便的写法吗?
难道要每个node都setAnchorPoint?但这个的话,rotate的时候又不是按中心转了。

setPosition两个参数是浮点类型吧,这1个像素这么重要的话…建议还是给精灵绝对坐标好

  • 本帖最后由 月神天 于 2012-7-16 17:14 编辑 *

给a,b添加一个getLeft,setLeft,getRight,setRight方法,按照自身锚点换算真实坐标。
b->setLeft(a->getRight())
在setLeft和setRight方法里
void setLeft(float value)
{
float delta= this->width * this->getAnchoPoint().x;
this->setPosition(value + delta, this->y);
}