2012-06-15 63 views
0

我有了修改了其所有屬性CCSprite:旋轉,縮放,如果skewX,skewY,位置等的Cocos2D 2.0 - 重置CCSprite旋轉,縮放,傾斜等

如何重置那層初始狀態(創建時)?

我曾嘗試使用

[mySprite setTransform:CGAffineTransformIdentity]; 

但Xcode的抱怨,這是不存在的CCNode/CCSprite

感謝

回答

0

爲什麼不這樣做呢?

mySprite.rotation = 0.0f; 
mySprite.scale = 1.0f; 
mySprite.skewX = 0.0f; 
mySprite.skewY = 0.0f; 
mySprite.position = CGPointZero; 
+0

我想這是唯一正確的方法嗎?我想知道Cocos是否有類似於view.transform的東西,我可以使用CGAffineTransform和transformIdentity來重置它。不管怎樣,謝謝。 – SpaceDog

+0

幕後,是的。但是所有由cocos2d創建的轉換都基於這些屬性,因此在下次這些屬性發生更改時,更改轉換可能會被引擎覆蓋。但是cocos2d的目的主要是爲了隱藏那些難以理解的東西,比如OpenGL和用戶轉換。 – LearnCocos2D

2

你可以採取斯特芬的代碼,並把它包裝在一個類別,讓您切實做到有提供給所有節點resetTransform方法。

@interface CCNode (ResetTransform) 
-(void) resetTransform; 
@end 

@implementation CCNode (ResetTransform) 
-(void) resetTransform 
{ 
    self.rotation = 0.0f; 
    self.scale = 1.0f; 
    self.skewX = 0.0f; 
    self.skewY = 0.0f; 
    self.position = CGPointZero; 
} 
@end