Ios Sprite套件在64位模拟器中不工作

Ios Sprite套件在64位模拟器中不工作,ios,sprite-kit,Ios,Sprite Kit,首次使用SpriteKit制作动画。设置一组熊行走图像的动画-非常基本。然而,虽然该应用程序在32位模式模拟器中运行良好,但在64位模拟器中运行时会出现乱码 这是ViewController- //CPViewController.h @interface CPViewController : UIViewController @end //CPViewController.m @implementation CPViewController - (void)viewDidLoad {

首次使用SpriteKit制作动画。设置一组熊行走图像的动画-非常基本。然而,虽然该应用程序在32位模式模拟器中运行良好,但在64位模拟器中运行时会出现乱码

这是ViewController-

//CPViewController.h

@interface CPViewController : UIViewController

@end
//CPViewController.m

@implementation CPViewController

- (void)viewDidLoad
{
    [super viewDidLoad];

    SKView * skView = (SKView *)self.view;
    skView.showsFPS = YES;
    skView.showsNodeCount = YES;
    SKScene * scene = [CPMyScene sceneWithSize:skView.bounds.size];
    scene.scaleMode = SKSceneScaleModeAspectFill;
    [skView presentScene:scene];
}

@end
//CPMyScene.h

@interface CPMyScene : SKScene

@end
//CPMyScene.m

@implementation CPMyScene {
    SKSpriteNode *_bear;
    NSArray *_bearWalkingFrames;
}

-(id)initWithSize:(CGSize)size {    
    if (self = [super initWithSize:size]) {
        /* Setup your scene here */

        self.backgroundColor = [SKColor blackColor];
        NSMutableArray *bearWalkingFrames = [NSMutableArray array];
        SKTextureAtlas *bearAtlas = [SKTextureAtlas atlasNamed:@"BearImages"];
        NSUInteger frameCount = bearAtlas.textureNames.count;
        for (int i=1 ; i<=frameCount ; i++) {
            NSString *frameImageName = [NSString stringWithFormat:@"bear%d",i];
            SKTexture *frameImage = [bearAtlas textureNamed:frameImageName];
            [bearWalkingFrames addObject:frameImage];
        }
        _bearWalkingFrames = bearWalkingFrames;
        SKTexture *firstFrame = _bearWalkingFrames[0];
        _bear = [SKSpriteNode spriteNodeWithTexture:firstFrame];
        _bear.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame));
        [self addChild:_bear];
        [self startWalkingTheBear];
    }
    return self;
}

-(void) startWalkingTheBear {
    [_bear runAction:[SKAction repeatActionForever:[SKAction animateWithTextures:_bearWalkingFrames timePerFrame:0.1f resize:NO restore:YES]] withKey:@"WalkingBear"];
}

@end
图像为233x145像素

这是一个32位模式的视频模拟器-

这是一个64位模式下的视频模拟器不工作-图像边界错误或什么的-

参考资料:


-除了为iPhone和iPad而不是iPad量身定做的代码外,大部分代码都来自这里。

解决了这个问题。我不得不将@2x图像添加到图像图集文件夹中。@2x图像的大小不是非@2x图像的两倍,而是非@2x图像的一个副本,只是重命名为@2x。不过这真的很有趣。

我对SpriteKit在64位/iPhone5S上不工作也有类似的问题。这一幕只是以灰色屏幕出现的。结果证明,使@property“强大”解决了问题!你把它放在哪里@DavidDouglas