繁体   English   中英

Sprite Kit在64位模拟器中不起作用

[英]Sprite Kit not working in 64bit simulator

首次使用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

图片为233 x 145像素。

这是32位模式下模拟器中的视频-

http://youtu.be/fqJzS-XN0tk

这是在模拟器中以64位模式播放的视频(不起作用-图像边界错误或其他原因)-

http://youtu.be/Kby9aP4gSzg

参考文献:

http://www.raywenderlich.com/45152/sprite-kit-tutorial-animations-and-texture-atlases-该代码主要来自此处,除了为iPhone和iPad量身定制的,而不仅仅是为iPad设计的。

解决了。 我必须将@ 2x图像添加到图像地图集文件夹。 @ 2x图像的大小不是非@ 2x图像大小的两倍,而只是非@ 2x图像的副本,并使用@ 2x重命名。 不过,这真的很有趣。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM