Cocos2d-x CCFollow Zooming issue
- by blakey87
Hi I am currently building a cocos2d-x game which incorporates pinch zoom using CCLayerPanZoom class which can be found here
The problem is basically when using CCFollow and zooming and out, it does'nt zoom on the actually followed node, so the camera appears to zoom towards the bottom left corner of the screen, when I would rather it zoom centrally on the followed node.
If I could resolve this I would pretty darn happy. I converted a fix from the cocos2d objective C version in the CCfollow class to cocos2d-x which improved the issue,but if you look at the post in latter link you will see the guy is having the exact same problem, he gave up on fixing it sadly.
I think its close but I don't really know what going on, hopefully someone out there has already faced and fixed this problem.
My converted code is below.
CCPoint p1 = ccpMult(m_obHalfScreenSize, m_pTarget->getScale() );
CCPoint p2 = ccpMult(m_pobFollowedNode->getPosition(), m_pTarget->getScale() );
CCPoint offect = ccpMult(ccpSub(p1, m_obHalfScreenSize), 0.5f);
CCPoint tempPos = ccpAdd(ccpSub(p1, p2), offect);
m_pTarget->setPosition(ccp(clampf(tempPos.x,m_fLeftBoundary,m_fRightBoundary),
clampf(tempPos.y,m_fBottomBoundary,m_fTopBoundary)));
I have attached before and after to hopefully make things more clear.