Game Development Reference
In-Depth Information
us is used to enlarge the player as a whole, effectively scaling it up. I'll say more about
this shortly.
Now add the missing setup method in Listing 10-10 just below didLoadFromCCB .
Listing 10-10 . Initial setup of memory buffers and storing the bodies' initial positions
-(void) setup
{
[self freeAllocatedMemory];
_numVertices = (int)_children.count + 1;
_vertices = calloc(_numVertices, sizeof(CCVertex));
_initialBodyPositions = calloc(_numVertices,
sizeof(CGPoint));
int i = 0;
CGPoint centerPos
= ((CCNode*)_children[0]).positionInPoints;
for (CCNode* child in _children)
{
if (child.physicsBody)
{
if (i == 0)
{
_initialBodyPositions[i] = centerPos;
}
else
{
CGPoint centerToChild
= ccpSub(child.positionInPoints,
centerPos);
CGFloat newRadius
= ccpLength(centerToChild) +
_enlargeTextureRadius;
CGPoint newPos
= ccpMult(ccpNormalize(centerToChild),
newRadius);
_initialBodyPositions[i] = ccpAdd(newPos,
centerPos);
}
Search WWH ::




Custom Search