Я пытаюсь создать растущий круг у бурундука, который начинает расти, когда вы касаетесь и удерживаете палец в каком-то месте. В бурундуке я не нашел какой-либо конкретной справочной функции, задаваясь вопросом, есть ли у кого-нибудь какие-либо советы, советы или подсказки, как это сделать.
Одним из способов было бы создать круг немного больше предыдущего и уничтожать старый каждый круг обновления. Может быть, есть более простой способ, у кого-нибудь есть мысли?
Спасибо
UPDATE:
На данный момент я использую следующий метод:
В моем классе actionLayer:
-(BOOL) ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event
{
CGPoint touchLocation = [touch locationInView: [touch view]];
CGPoint circleOrigin = [[CCDirector sharedDirector] convertToGL: touchLocation];
spriteObject = [[[CPHatchimal alloc] initWithSpace:space atLocation:circleOrigin] autorelease];
[sceneSpriteBatchNode addChild:spriteObject z:2];
return YES;
}
-(void) ccTouchEnded:(UITouch *)touch withEvent:(UIEvent *)event
{
[spriteObject setGrowCircle:NO];
}
В моем классе "spriteObject":
-(void) update:(ccTime)deltaTime {
if (growCircle) {
CGPoint location = ccp(circleOrigin.x, circleOrigin.y);
cpFloat r = ((cpCircleShape*) shape)->r;
r++;
NSString *spritName = [self getCurrentSpriteName];
[self setDisplayFrame:[[CCSpriteFrameCache sharedSpriteFrameCache]
spriteFrameByName:spritName]];
[self setScale:(0.01 * r)];
cpSpaceRemoveStaticShape(space, shape);
cpShapeFree(shape);
body = cpBodyNewStatic();
body->p = location;
shape = cpCircleShapeNew(body, radius, cpvzero);
shape->e = e;
shape->u = u;
shape->collision_type = collisionType;
shape->data = self;
cpSpaceAddStaticShape(space, shape);
}
}
На данный момент у меня довольно хороший fps (около 60), поэтому я думаю, что это решение в порядке ..