Objective c cocos2d和花栗鼠的生长圈

Objective c cocos2d和花栗鼠的生长圈,objective-c,cocos2d-iphone,chipmunk,Objective C,Cocos2d Iphone,Chipmunk,我试图在花栗鼠身上创造一个成长的圆圈,当你触摸并握住手指的某个位置时,它就会开始成长。我还没有在花栗鼠身上找到任何具体的帮助功能,不知道是否有人对如何做到这一点有任何建议、提示或窍门 一种方法是创建一个比前一个稍大一点的圆,并在每次更新圆时销毁旧的圆。也许有更简单的方法,有人有什么想法吗 谢谢 更新: 目前,我正在使用以下方法: 在我的actionLayer类中: -(BOOL) ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event {

我试图在花栗鼠身上创造一个成长的圆圈,当你触摸并握住手指的某个位置时,它就会开始成长。我还没有在花栗鼠身上找到任何具体的帮助功能,不知道是否有人对如何做到这一点有任何建议、提示或窍门

一种方法是创建一个比前一个稍大一点的圆,并在每次更新圆时销毁旧的圆。也许有更简单的方法,有人有什么想法吗

谢谢

更新: 目前,我正在使用以下方法:

在我的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,所以我想这个解决方案是好的


您必须单独导入此标题,因为我通常不鼓励人们使用它。请确保您了解花栗鼠无法了解曲面是如何移动或变化的,因此碰撞将变得模糊。

您的方式将导致CPU过载。但是你可以利用通常的圆形精灵,当它被触摸时,你可以放大它。现在的问题是,你想把它放大多少?谢谢你的回复!我刚刚尝试了你的解决方案,但身体的边缘没有与形状一起缩放,这意味着接触点将关闭。我恢复到我原来的解决方案,性能损失并没有那么严重。