2011-10-07 3 views
0

나는 chipmunk에서 커다란 원을 만들려고합니다. 그 원은 한 위치에서 손가락을 길게 터치하면 성장하기 시작합니다. 나는 chipmunk에서 특정 도움말 기능을 발견하지 못했습니다. 누군가가 조언, 팁 또는 트릭을 수행하는 방법을 알고 있는지 궁금합니다.cocos2d 및 chipmunk에서 성장하는 원

한 가지 방법은 이전의 것보다 약간 큰 원을 만들고 이전의 원을 업데이트하는 것입니다. 어쩌면 더 쉬운 방법이있을 수 있습니다.

감사

UPDATE : 내 actionLayer 클래스에서

: 내 "spriteObject"클래스에서

-(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]; 
} 

:

-(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)를 가지고있다. 그래서 나는 ESS는이 솔루션은 .. 당신은 내가 일반적으로 그것을 사용하는 사람들을 격려하지 않는 한 별도로이 헤더를 가져와야합니다

+1

당신의 길은 CPU에서 과부하가 걸릴 것입니다. 그러나 일반적인 원형 스프라이트를 사용하고 터치하면 원형 스프라이트의 크기를 조절할 수 있습니다. 이제 문제는 얼마나 확대하고 싶은가요? – gixdev

답변

0

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

괜찮습니다. 다람쥐가 표면이 어떻게 움직이고 변화 하는지를 이해할 수있는 방법이 없으므로 충돌로 인해 충돌이 어둡다는 것을 이해했는지 확인하십시오.

+0

Slembcke 답장을 보내 주셔서 감사합니다! 방금 솔루션을 시도했지만 몸체의 모서리가 모양과 함께 축척되지 않았으므로 접촉 지점이 해제됩니다. 나는 원래의 솔루션으로 돌아가고 있으며 성능 저하는 그렇게 나쁘지 않습니다. –