2016-02-24 2 views
1

Я пытаюсь создать заставку с сценой набора спрайтов в Swift. Когда я впервые сделал проект, и до того, как я добавил какой-либо код SpriteKit, я столкнулся с проблемой, когда созданный Screensaver был создан, но отображался только «Вы не можете использовать заставку X с этой версией OS X».Можно ли использовать SpriteKit в ScreenSaverView

Эта задача была решена, или так я думал, путем добавления к настройкам сборки:

EMBEDDED_CONTENT_CONTAINS_SWIFT = YES; 

который, казалось, сделать трюк. Я думал, что эта проблема была позади меня, но теперь, когда я добавил очень простую сцену SpriteKit (просто отображая цвет BG), сообщение возвращается. Может ли кто-нибудь подтвердить, что Заставка МОЖЕТ использовать SpriteKit, и если да, то какие-нибудь идеи о том, как заставить ее работать?

ответ

0

[Редактировать]

Оказывается, с помощью ScreenSaverView в 100% быстрый код, он не любит никаких быстрые объектов за пределами стремительного файла ScreenSaverView. Если вы сохраните код внутри файла, вы не получите эту ошибку.

--old Stuff--

Вы должны быть в состоянии добавить SKView как ребенок к ScreenSaverView, а затем сделать свой спрайт комплект работы в этом SKView, кроме того, что все должно работать, как ожидается, до тех пор, поскольку вы находитесь на версии OSX, которая поддерживает Sprite Kit, если вы могли бы рассказать мне, какую версию вы тестируете, я запустил ее на моем.

Возможно, это ваша проблема, вы работаете над чем-то < 10.9.

Источник: Sprite Kit OSX not loading start up code for spaceship

Code that works: 

#import "screenSaverTestView.h" 
#import <SpriteKit/SpriteKit.h> 
#import "screenSaverTest-Swift.h" 
@implementation screenSaverTestView 

- (instancetype)initWithFrame:(NSRect)frame isPreview:(BOOL)isPreview 
{ 
    self = [super initWithFrame:frame isPreview:isPreview]; 
    if (self) { 
     [self setAnimationTimeInterval:1/30.0]; 
     MyView *view = [[MyView alloc] init]; 
     [self addSubview:view]; 
    } 
    return self; 
} 

- (void)startAnimation 
{ 
    [super startAnimation]; 
} 

- (void)stopAnimation 
{ 
    [super stopAnimation]; 
} 

- (void)drawRect:(NSRect)rect 
{ 
    [super drawRect:rect]; 
} 

- (void)animateOneFrame 
{ 
    return; 
} 

- (BOOL)hasConfigureSheet 
{ 
    return NO; 
} 

- (NSWindow*)configureSheet 
{ 
    return nil; 
} 

@end 

==== ===== СВИФТ

import Foundation 
import SpriteKit 
class MyView : SKView 
{ 
    override func viewWillMoveToSuperview(newSuperview: NSView?) { 
     self.presentScene(SKScene(size: self.frame.size)); 
    } 
} 
+0

Я бегу 10.11.13 и Xcode 7.2.1 я могу получить SS работать без Sprite Kit, но как только я добавлю SKView, я вернусь к экрану ошибок. Есть ли что-то в настройках Build, которые мне нужно сделать, чтобы сказать, чтобы включить поддержку SK? Также стоит отметить, что у меня есть приложение для настольных приложений, использующее представление SK для тестирования, и это отлично работает. –

+0

OK Я нахожусь на 10.10.5, когда я вернусь домой, я попробую его на своем Mac Mini, у которого есть El Capitan, но по состоянию на данный момент я смог получить его для компиляции – Knight0fDragon

+0

Я добавил свой тестовый код для вас, может быть, вы делаете что-то другое – Knight0fDragon

Смежные вопросы