Ios 我应该用什么替换CCTexture2D initWithImage?

Ios 我应该用什么替换CCTexture2D initWithImage?,ios,cocos2d-iphone,Ios,Cocos2d Iphone,我应该用什么替换CCTexture2D initWithImage 我有这个方法: CCTexture2D *noMutableTexture = [[[CCTexture2D alloc] initWithImage:[UIImage imageNamed:@"myImage.png"]] autorelease]; 我跳转到定义,发现现在唯一的方法是: - (id) initWithData:(const void*)data pixelFormat:(CCTexture2DPixelFo

我应该用什么替换CCTexture2D initWithImage

我有这个方法:

CCTexture2D *noMutableTexture = [[[CCTexture2D alloc] initWithImage:[UIImage imageNamed:@"myImage.png"]] autorelease];
我跳转到定义,发现现在唯一的方法是:

- (id) initWithData:(const void*)data pixelFormat:(CCTexture2DPixelFormat)pixelFormat pixelsWide:(NSUInteger)width pixelsHigh:(NSUInteger)height contentSize:(CGSize)size

我猜是后者,但我不确定如何构建CGImageRef,也不知道ccResolutionType是什么


任何帮助都将不胜感激。Thx

将纹理添加到纹理缓存时,该方法将返回纹理。从CCE的文档中:

-(CCTexture2D*) addImage: (NSString*) fileimage:
因此,在你的情况下:

CCTexture2D *noMutableTexture = [[CCTextureCache sharedTextureCache] addImage:@"myImage.png"];
是resolutionType的可能值

所以根据设备类型,iPhone或iPhone视网膜(3.5/4英寸)、iPad、iPad视网膜。分辨率类型的值各不相同

- (id) initWithCGImage:(CGImageRef)cgImage resolutionType:(ccResolutionType)resolution
您可以像这样构建CGImageRef:

UIImage *someImage = [UIImage imageNamed:@"someImage.png"];
CGImageRef someImageRef = someImage.CGImage;
你可以像这样检查你的设备类型

-(ccResolutionType)resolutionType{
    static NSInteger ret=-1;

    if (ret != -1) return ret;

    if( UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
    {
        if( CC_CONTENT_SCALE_FACTOR() == 2 )
            ret = kCCResolutioniPadRetinaDisplay;
        else
            ret = kCCResolutioniPad;
    }
    else
    {
        if( CC_CONTENT_SCALE_FACTOR() == 2 ){
            BOOL isWideScreenEnabled = (BOOL)(fabs((double)[UIScreen mainScreen].bounds.size.height -
                                                   (double)568) < DBL_EPSILON);

            if (isWideScreenEnabled) {
                ret = kCCResolutioniPhone5Display;
            }
            else ret = kCCResolutioniPhoneRetinaDisplay;
        }
        else
            ret = kCCResolutioniPhone;
    }

       if(ret == -1)
        ret = kCCResolutionUnknown;


    return ret;
}


你想要什么?来自CCTexture2D的CCSprite或UIImage/CGImage???两者均
front=[CCTexture2D addImage:@“iphone4_front.jpg”]&
front=[[CCTexture2D sharedTextureCache]添加图像:@“iphone4_front.jpg”]返回“未找到类方法,返回类型默认为id”。CCTextureCache非CCTexture2D。获取纹理的另一种方法是创建CCSprite并使用sprite的“纹理”属性。
UIImage *someImage = [UIImage imageNamed:@"someImage.png"];
CGImageRef someImageRef = someImage.CGImage;
-(ccResolutionType)resolutionType{
    static NSInteger ret=-1;

    if (ret != -1) return ret;

    if( UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
    {
        if( CC_CONTENT_SCALE_FACTOR() == 2 )
            ret = kCCResolutioniPadRetinaDisplay;
        else
            ret = kCCResolutioniPad;
    }
    else
    {
        if( CC_CONTENT_SCALE_FACTOR() == 2 ){
            BOOL isWideScreenEnabled = (BOOL)(fabs((double)[UIScreen mainScreen].bounds.size.height -
                                                   (double)568) < DBL_EPSILON);

            if (isWideScreenEnabled) {
                ret = kCCResolutioniPhone5Display;
            }
            else ret = kCCResolutioniPhoneRetinaDisplay;
        }
        else
            ret = kCCResolutioniPhone;
    }

       if(ret == -1)
        ret = kCCResolutionUnknown;


    return ret;
}
UIImage *someImage = [UIImage imageNamed:@"someImage.png"];
CGImageRef someImageRef = someImage.CGImage;
CCTexture2D *tex = [[CCTexture2D alloc] initWithCGImage:someImageRef resolutionType:kCCResolutionUnknown ];
CCTexture2D *tex = [[CCTexture2D alloc] initWithCGImage:someImageRef resolutionType:[self resolutionType]];