我正在为一个SKSpriteNode(一个Ball)创建一个假阴影,其中有物理实体和Y方向的脉冲应用于它。我喜欢减少在球抬起时留在地面上的阴影的不透明度,并在它向后朝地面时将其减少到100%。任何想法?
答案 0 :(得分:1)
是的,请使用更新方法。然后只需在每次更新时测试球Y位置。
答案 1 :(得分:0)
以下是代码示例。您也可以使用SKAction上下移动对象,而不是像在更新方法中那样手动操作。这完全取决于您的代码以及最适合您的代码。
#import "MyScene.h"
@implementation MyScene
{
SKSpriteNode *object1;
SKSpriteNode *shadow;
BOOL goUp;
}
-(id)initWithSize:(CGSize)size
{
if (self = [super initWithSize:size])
{
object1 = [SKSpriteNode spriteNodeWithColor:[SKColor redColor] size:CGSizeMake(50, 50)];
object1.position = CGPointMake(100, 25);
[self addChild:object1];
shadow = [SKSpriteNode spriteNodeWithColor:[SKColor redColor] size:CGSizeMake(50, 50)];
shadow.position = CGPointMake(200, 25);
[self addChild:shadow];
goUp = true;
}
return self;
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
//
}
-(void)update:(CFTimeInterval)currentTime
{
if((goUp == true) && (object1.position.y == 200))
goUp = false;
if((goUp == false) && (object1.position.y == 25))
goUp = true;
if(goUp == true)
{
object1.position = CGPointMake(object1.position.x, object1.position.y+1);
shadow.alpha -= 0.005;
}
if(goUp == false)
{
object1.position = CGPointMake(object1.position.x, object1.position.y-1);
shadow.alpha += 0.005;
}
}
@end