Заставить изображение следовать по заранее определенному пути в iPhone? - PullRequest
2 голосов
/ 24 августа 2010

Я ищу способ заставить изображение (шарик) двигаться по заданному пути в iPhone.Мое намерение состоит в том, чтобы создать движение шара, подобное движению лабиринта.Я понимаю, что есть способ создавать пути программно, используя CGPath.Но я считаю, что сложно создавать сложные пути.Есть ли лучший и более простой способ создать путь из изображения (который будет выглядеть или представлять путь) и ограничить движение изображения (шара) на этом пути?

Заранее спасибо за помощь..

Ответы [ 2 ]

4 голосов
/ 25 августа 2010

Не так уж сложно создать анимацию для перемещения объекта по пути.Например, следующий код будет анимирован вдоль определенной кривой Безье:

CAKeyframeAnimation *pathAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"];
pathAnimation.duration = 1.0f;
pathAnimation.calculationMode = kCAAnimationPaced;

CGPoint currentPosition = viewToAnimate.layer.position;
CGPoint endPoint = CGPointMake(currentPosition.x + 100.0f, currentPosition.y - 50.0f);
CGMutablePathRef curvedPath = CGPathCreateMutable();
CGPathMoveToPoint(curvedPath, NULL, currentPosition.x, currentPosition.y);
CGPathAddCurveToPoint(curvedPath, NULL, endPoint.x, currentPosition.y, endPoint.x, currentPosition.y, endPoint.x, endPoint.y);
pathAnimation.path = curvedPath;
CGPathRelease(curvedPath);

pathAnimation.fillMode = kCAFillModeForwards;
pathAnimation.removedOnCompletion = NO;
[viewToAnimate.layer addAnimation:pathAnimation forKey:@"animateMovementUsingPath"];

В центральной части этого кода указан путь.В этом случае я начинаю рисовать с currentPosition, затем добавляю кривую, которая заканчивается на endPoint.Контрольными точками для этой кривой являются (endPoint.x, currentPosition.y) и (endPoint.x, currentPosition.y).

Будет намного проще определить векторную кривую таким образом и позволить Core Animation обрабатывать все анимации для вас, чем управлять всемианимация себя.

0 голосов
/ 24 августа 2010

Рассматривали ли вы настоящий физический движок?Пуля, например, довольно крутая.

...