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