Растущие круги в cocos2d и бурундуке - PullRequest
0 голосов
/ 07 октября 2011

Я пытаюсь создать растущий круг у бурундука, который начинает расти, когда вы касаетесь и удерживаете палец в каком-то месте. В бурундуке я не нашел какой-либо конкретной справочной функции, задаваясь вопросом, есть ли у кого-нибудь какие-либо советы, советы или подсказки, как это сделать.

Одним из способов было бы создать круг немного больше предыдущего и уничтожать старый каждый круг обновления. Может быть, есть более простой способ, у кого-нибудь есть мысли?

Спасибо

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), поэтому я думаю, что это решение в порядке ..

1 Ответ

0 голосов
/ 07 октября 2011

https://github.com/slembcke/Chipmunk-Physics/blob/master/include/chipmunk/chipmunk_unsafe.h

Вы должны импортировать этот заголовок отдельно, поскольку я обычно не рекомендую людям использовать его.Убедитесь, что вы понимаете, что Бурундук не может понять, как поверхность движется или изменяется, и из-за этого столкновения будут мягкими.

...