我想開發一款iPhone上的*遊戲,怎樣可以讓這個*轉起來呢?
原問題:how can I use animation in cocos2d?
小伙看你根骨奇佳,潜力无限,来学PHP伐。
答:Brad Larson (最佳答案) 我不知道如何在cocos2d上插入動畫,但是你可以用CALayers或UIViews創建核心動畫。或許最簡答的方法就是創造一個包含*圖樣的UIImageView,然後編成動畫。 首先,新建UIImageView,將*圖案設定為它的初始值,如果想讓*轉動,使用以下程式碼:
CATransform3D rotationTransform = CATransform3DMakeRotation(1.0f * M_PI, 0, 0, 1.0); CABasicAnimation* rotationAnimation; rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform"]; rotationAnimation.toValue = [NSValue valueWithCATransform3D:rotationTransform]; rotationAnimation.duration = 0.25f; rotationAnimation.cumulative = YES; rotationAnimation.repeatCount = 10; [rotatingImage.layer addAnimation:rotationAnimation forKey:@"rotationAnimation"];
假設rotatingImage就是你需要的UIImageView。 在這個實例中,轉盤會轉5次,每次耗時0.5秒,轉動會在半圈時候停止,因為核心動畫(Core Animation)在半圈的時候變方向,所以在轉動改變方向之前,最多能讓轉盤轉半圈。也就是說,如果你設定旋轉角度為(1.5f * pi),它只能轉九十度。如果你設定弧度值為(0.999f * pi),轉盤會順時針旋轉。 如果想要達到加速或減速的效果,最好不要用CABasicAnimation,CAKeyframeAnimation的效果會更好些。
答:Stanislav 在cocos2d中,簡單的方法是:設定
[sprite runAction:[RotateBy actionWithDuration:dur angle:360]];
完成旋轉動作,如果需要持續性的旋轉,你可以設定
id action = [RepeatForever actionWithAction: [RotateBy actionWithDuration:dur angle:360]]; [sprite runAction:action];
和
[sprite stopAction:action];
在此之前,一定要設定sprite transformAnchor,讓image處於居中位置。
答:mahboudz 你可以設定不同的弧度參數來完成*的旋轉,不用考慮是否可以轉滿一周,也不需要把整個轉動過程分成幾個部分來設計。例如,下面的程式碼可以完成旋轉的效果,每秒轉一次:
- (void) runSpinAnimationWithDuration:(CGFloat) duration; { CABasicAnimation* rotationAnimation; rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"]; rotationAnimation.toValue = [NSNumber numberWithFloat: M_PI * 2.0 /* full rotation*/ * rotations * duration ]; rotationAnimation.duration = duration; rotationAnimation.cumulative = YES; rotationAnimation.repeatCount = 1.0; rotationAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut]; [myView.layer addAnimation:rotationAnimation forKey:@"rotationAnimation"]; }
答:EightyEight 有很多方法可以完成動畫的效果,如果你要給轉盤設定一種frame-by-frame模式的動畫效果,可以藉助AtlasDemo達到這個目的。
答:Brad Larson
(最佳答案)
我不知道如何在cocos2d上插入動畫,但是你可以用CALayers或UIViews創建核心動畫。或許最簡答的方法就是創造一個包含*圖樣的UIImageView,然後編成動畫。
首先,新建UIImageView,將*圖案設定為它的初始值,如果想讓*轉動,使用以下程式碼:
假設rotatingImage就是你需要的UIImageView。
在這個實例中,轉盤會轉5次,每次耗時0.5秒,轉動會在半圈時候停止,因為核心動畫(Core Animation)在半圈的時候變方向,所以在轉動改變方向之前,最多能讓轉盤轉半圈。也就是說,如果你設定旋轉角度為(1.5f * pi),它只能轉九十度。如果你設定弧度值為(0.999f * pi),轉盤會順時針旋轉。
如果想要達到加速或減速的效果,最好不要用CABasicAnimation,CAKeyframeAnimation的效果會更好些。
答:Stanislav
在cocos2d中,簡單的方法是:設定
完成旋轉動作,如果需要持續性的旋轉,你可以設定
和
在此之前,一定要設定sprite transformAnchor,讓image處於居中位置。
答:mahboudz
你可以設定不同的弧度參數來完成*的旋轉,不用考慮是否可以轉滿一周,也不需要把整個轉動過程分成幾個部分來設計。例如,下面的程式碼可以完成旋轉的效果,每秒轉一次:
答:EightyEight
有很多方法可以完成動畫的效果,如果你要給轉盤設定一種frame-by-frame模式的動畫效果,可以藉助AtlasDemo達到這個目的。