Cocos2D-iPhone: ShadowPaths аля Core Animation - PullRequest
       21

Cocos2D-iPhone: ShadowPaths аля Core Animation

1 голос
/ 20 февраля 2011

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

if (self.displayShadow)
{
    self.shadowLayer = [CALayer layer];

    self.shadowLayer.shadowPath = self.pOutline;
    self.shadowLayer.shadowOpacity = 1.0;
    self.shadowLayer.zPosition = -1.;
    self.shadowLayer.position = self.center;
    self.shadowLayer.shadowOffset = CGSizeMake(+3., +3.);

    [self.layer addSublayer: self.shadowLayer];
}

Как это сделать?И возможно ли получить такое же поведение от Cocos2D?

1 Ответ

0 голосов
/ 08 мая 2011

Создайте подкласс CCSprite и создайте спрайт темной тени в форме вашего спрайта.

Создайте экземпляр подкласса CCSprite и добавьте тень как дочерний элемент в спрайт.

Переопределитьметод "посещения" с:

-(void)visit{
    if(shadow!=NULL){
        int cx = self.contentSize.width / 2;
        int cy = self.contentSize.height / 2;

        float rot = (int)self.rotation%360 + 30;
        float px = cx + SHADOW_OFFSET*sinf(rot*M_PI / 180.0);
        float py = cy - SHADOW_OFFSET*cosf(rot*M_PI / 180.0);
        shadow.position = CGPointMake(px, py);
    }
    [super visit];
}
...