【问题标题】:Cocos2D-iPhone: ShadowPaths ala Core AnimationCocos2D-iPhone:ShadowPaths ala Core Animation
【发布时间】:2011-02-20 00:52:15
【问题描述】:

在核心动画中,可以在 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 获得相同的行为?

【问题讨论】:

    标签: core-animation cocos2d-iphone shadow layer


    【解决方案1】:

    创建一个 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];
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多