CCSprite*sp1=CCSprite::create("boss2A.png");
this->addChild(sp1);
sp1->setAnchorPoint(CCPointZero);
默认位置:左下角(ccp(0,0))
默认锚点:中心位置(ccp(0.5,0.5))
测试的矩形框是以左下角为锚点的。位置是当初设置sprite的位置.
Draw()没有变,这样在其他地方想得到sprite所在矩形范围:
结论1:
以左下角为锚点的矩形旋转,180度后位置变了:
X1 = x1-w1;
Y1 = y1-h1;
旋转90度:
Draw()内修改:
修改后效果:
结论:
锚点为左下的矩形旋转:顺时针90度,之后的位置:
Y1 = y1-w1;
Int tem = w1;
W1 = h1;
H1 = tem;//宽高交换
猜测:锚点为坐下的矩形旋转:逆时针90度,之后的位置:
X1 = x1-h1;
Int tem = w1;
W1 = h1;
H1 = tem;
旋转-90度后。代码没改:
Draw()代码添加
添加代码后的效果:
呵呵,猜想正确了!。
等一下封装一下,以后遇到矩形旋转的直接拿来用就ok!!!
cocos2d::CCRectHelloWorld::getRectRotation(CCRectr,intdir,CCPointAnchorPoint)
{
int x1=r.getMidX();
int y1=r.getMinX();
int w1=r.size.width;
int h1=r.size.height;
if (AnchorPoint.x==0&&AnchorPoint.y==0)
{
if (dir==180)
{
x1=x1-w1;
y1=y1-h1;
}
if (dir==90)
{
y1=y1-w1;
int tem=w1;
w1=h1;
h1=tem;
}
if (dir==-90)
{
x1=x1-h1;
int tem=w1;
w1=h1;
h1=tem;
}
}
return CCRect(x1,y1,w1,h1);
}
目前只是对锚点为左下角的矩形旋转,以后有时间再完善,现在还有更重要的是要做~