Использование SpriteKit для анимации в первый раз. Анимация набора изображений для ходьбы медведя - очень простая. Однако, несмотря на то, что приложение хорошо работает в 32-битном симуляторе, оно искажается при работе в 64-битном симуляторе.Sprite Kit не работает в 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 px.
Вот видео в тренажере в 32-битном режиме -
Вот видео в тренажере в 64-битном режиме (не работает - IMAGE ГРАНИЦЫ НЕПРАВИЛЬНО или что-то) -
Ссылки:
http://www.raywenderlich.com/45152/sprite-kit-tutorial-animations-and-texture-atlases - код в основном отсюда, кроме как для iPhone и iPad, а не только для iPad.
У меня была аналогичная проблема с SpriteKit, не работающим на 64bit/iPhone5S. SKScene просто появился как серый экран. Оказалось, что @property «сильный» решил проблему! –
Где вы выразились @DavidDouglas – Muymuy1