Основываясь на моем первом вопросе здесь, на который ответил Theis Egeberg (Решение было объяснено Theis в комментарии и работало как по волшебству) Мне также нужно было бы знать следующее :
(У этого может быть простой ответ, но я оставлю его Theis или любому, кто может понять это.)
Что, если у меня есть другой объект, отскакивающий от уже движущегося мяча по оси Y с другой скоростью? как изменить альфу его тени на шаре.
Чтобы объяснить это понятнее и сделать более запутанным, предположим, что у нас есть ракетка для пинг-понга, которая движется вверх и вниз, и мячик для пинг-понга, который отскакивает от нее. С помощью формулы, которую ранее предоставил Theis, мы теперь знаем, как анимировать альфа-канал ракетки для пинг-понга (ранее мяч) на земле, но как насчет тени от мячика для пинг-понга на ракетке? как мы можем изменить его непрозрачность на ракетке? Будет ли это так же просто, как использовать одну и ту же формулу для обеих ракет и шаров :)? Можно ли использовать его как класс и использовать несколько раз здесь и там, и как бы вы написали и использовали его в таких местах, как обновление?
Вот код, который я реализовал, используя формулу Тайса Эгеберга.
- (void)update:(CFTimeInterval)currentTime
{
[self enumerateChildNodesWithName:@"shadowOnTheGround" usingBlock:^(SKNode *node, BOOL *stop) {
SKSpriteNode* racket = (SKSpriteNode*)[self childNodeWithName:@"racket"];
node.position = CGPointMake(60,217);
float racketY = racket.position.y;
float theisFormula = (430.0- recketY)/430;
node.alpha = theisFormula;
//NSLog(@"%f", theisFormula);
}];
}