Cocos2d iphone COCOS2D2.0-重置CCSprite旋转、缩放、倾斜等

Cocos2d iphone COCOS2D2.0-重置CCSprite旋转、缩放、倾斜等,cocos2d-iphone,Cocos2d Iphone,我有一个CCSprite,它的所有属性都已修改:旋转、缩放、扭曲、扭曲、位置等 如何将该层重置为初始状态(创建时) 我试着用 [mySprite setTransform:CGAffineTransformIdentity]; 但Xcode抱怨这在CCNode/CCSprite中不存在 谢谢为什么不这样做呢 mySprite.rotation = 0.0f; mySprite.scale = 1.0f; mySprite.skewX = 0.0f; mySprite.skewY = 0.0f;

我有一个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;

您可以使用Steffen的代码并将其包装在一个类别中,这样您就可以有效地为所有节点提供一个
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来重置它。不管怎样,谢谢。在幕后,是的。但是cocos2d创建的所有转换都基于这些属性,因此下一次更改其中一个属性时,引擎可能会覆盖对转换的更改。但是cocos2d的目的主要是向用户隐藏那些难以理解的东西,比如OpenGL和转换。