1
我有一個例子,我繪製形狀,例如三角形(點A,B,C)。現在我想讓它動起來,以便點A,B,C移向點X,Y,Z(讓我們只是說點按鈕點擊)iPhone開發 - 基本繪圖和動畫問題
我在繪製的自定義視圖中使用drawRect:方法。我不希望我的觀點移動,我寧願要我的圖畫移動(因爲我有多個圖畫)。
任何指針?任何相關文章?
問候, 穆斯塔法
我有一個例子,我繪製形狀,例如三角形(點A,B,C)。現在我想讓它動起來,以便點A,B,C移向點X,Y,Z(讓我們只是說點按鈕點擊)iPhone開發 - 基本繪圖和動畫問題
我在繪製的自定義視圖中使用drawRect:方法。我不希望我的觀點移動,我寧願要我的圖畫移動(因爲我有多個圖畫)。
任何指針?任何相關文章?
問候, 穆斯塔法
核心動畫是這種類型的事情一個很好的解決方案。您有CAShapeLayer,可以根據路徑繪製形狀,並且可以使用基本動畫或關鍵幀動畫製作動畫。你可以做這樣的事情在你的按鈕點擊:
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"position"];
[animation setFromValue:[NSValue valueWithCGPoint:CGPointMake(0.0, 0.0)]];
[animation setToValue:[NSValue valueWithCGPoint:CGPointMake(320.0, 480.0)]];
[animation setDuration:2.0f];
[shapeLayer addAnimation:animation forKey:@"positionAnimation"];
這將從點0.0,0.0(左上角)超過兩秒鐘的過程動畫層至320.0,480.0(右下角) 。將動畫添加到圖層時,它將立即開始播放。如果您正在尋找旋轉動畫(不是從後確定),你可以這樣做:
CABasicAnimation *rotationAnimation;
rotationAnimation = [CABasicAnimation
animationWithKeyPath:@"transform.rotation.z"];
[rotationAnimation setFromValue:DegreesToNumber(0)];
[rotationAnimation setToValue:DegreesToNumber(360)];
[rotationAnimation setDuration:2.0f];
[rotationAnimation setRepeatCount:10000]; // keep spinning
[shapeLayer addAnimation:rotationAnimation forKey:@"rotate"];
的DegreesToNumber是一個輔助函數,將度轉換爲弧度,並返回一個NSNumber對象:
CGFloat DegreesToRadians(CGFloat degrees)
{
return degrees * M_PI/180;
}
NSNumber* DegreesToNumber(CGFloat degrees)
{
return [NSNumber numberWithFloat:
DegreesToRadians(degrees)];
}
網上有很多關於Core Animation的文章,但這應該讓你開始。讓我知道你是否需要澄清。
感謝馬特,我會測試它,並會讓你知道它是怎麼回事。 – Mustafa 2009-08-19 04:54:47