0
我有了修改了其所有屬性CCSprite:旋轉,縮放,如果skewX,skewY,位置等的Cocos2D 2.0 - 重置CCSprite旋轉,縮放,傾斜等
如何重置那層初始狀態(創建時)?
我曾嘗試使用
[mySprite setTransform:CGAffineTransformIdentity];
但Xcode的抱怨,這是不存在的CCNode/CCSprite
感謝
我有了修改了其所有屬性CCSprite:旋轉,縮放,如果skewX,skewY,位置等的Cocos2D 2.0 - 重置CCSprite旋轉,縮放,傾斜等
如何重置那層初始狀態(創建時)?
我曾嘗試使用
[mySprite setTransform:CGAffineTransformIdentity];
但Xcode的抱怨,這是不存在的CCNode/CCSprite
感謝
爲什麼不這樣做呢?
mySprite.rotation = 0.0f;
mySprite.scale = 1.0f;
mySprite.skewX = 0.0f;
mySprite.skewY = 0.0f;
mySprite.position = CGPointZero;
你可以採取斯特芬的代碼,並把它包裝在一個類別,讓您切實做到有提供給所有節點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
我想這是唯一正確的方法嗎?我想知道Cocos是否有類似於view.transform的東西,我可以使用CGAffineTransform和transformIdentity來重置它。不管怎樣,謝謝。 – SpaceDog
幕後,是的。但是所有由cocos2d創建的轉換都基於這些屬性,因此在下次這些屬性發生更改時,更改轉換可能會被引擎覆蓋。但是cocos2d的目的主要是爲了隱藏那些難以理解的東西,比如OpenGL和用戶轉換。 – LearnCocos2D