2017-01-30 2 views
0

У меня есть проект на основе Objective-C в Xcode. Я пытаюсь добавить сцену SpriteKit как меньший вид в контроллере представления. Однако файлы SpriteKit бывают быстрыми. Я добавил Floor1.sks и связал его с Floor1.swift.Swift SKScene отображается как пробел в проекте Objective-C

Теперь я пытаюсь загрузить его в файл Objective-C ViewController.m. В моей раскадровке я сделал вид класса SKView, и я думаю, что я правильно сделал файл заголовка моста. Мой код, чтобы вставить его в данный момент:

GKScene *scene = [GKScene sceneWithFileNamed:@"Floor1"]; 
Floor1 *sceneNode = (Floor1 *)scene.rootNode; 
sceneNode.scaleMode = SKSceneScaleModeAspectFit; 

SKView *skView = (SKView *)_skView; 

[skView presentScene:sceneNode]; 

skView.showsFPS = YES; 
skView.showsNodeCount = YES; 

мнения, нагрузки при запуске приложения успешно, но это просто пустой вид с светло-серым фоном с графом узла, который является 0, и FPS. Что я делаю неправильно, почему это не загрузит мой правильный взгляд?

+0

Установите точку останова и проверьте, не инициализирована ли сцена. Кстати, что такое Floor1 (что такое scene.rootNode)? – Whirlwind

+0

@Whirlwind Floor1 - это название моей сцены. Там есть Floor1.sks и Floor1.swift. В sks у меня есть свой пользовательский класс, установленный в быстрый файл. И для кода для загрузки моего представления (единственный код в моем вопросе ^^) он просто скопирован/вставлен в мой проект. Кажется, я не могу заставить его работать, но –

+0

Почему вы загружаете GKScene из Floor1.sks? Ваш код немного запутан. Например, кажется, что ваша сцена имеет свойство rootNode, которое также является сценой. У вас нет сцены в сцене. Я имею в виду теоретически, что вы можете, но сцена, которая добавляется как ребенок в другую сцену, будет действовать как обычный узел. – Whirlwind

ответ

0

У меня была та же проблема. Простите мой английский, я использую переводчик Google. Я решил посмотреть на него как на записанные файлы, когда создаю новую кросс-платформенную игру. А именно кросс-платформенный. У него нет другой инициализации сцены. И все это сработало для меня. Используется для работы только на 10 прошивкой, и теперь IOS 9. скриншоты я прикрепил к ним

GameViewController.m

#import "GameViewController.h" 
#import "GameScene.h" 

@implementation GameViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    GameScene *scene = [GameScene newGameScene]; 

    // Present the scene 
    SKView *skView = (SKView *)self.view; 
    [skView presentScene:scene]; 

    skView.ignoresSiblingOrder = YES; 
    skView.showsFPS = YES; 
    skView.showsNodeCount = YES; 
} 

[GameScene.m] [2]

#import "GameScene.h" 

@implementation GameScene { 
    SKShapeNode *_spinnyNode; 
    SKLabelNode *_label; 
} 

+ (GameScene *)newGameScene { 
    // Load 'GameScene.sks' as an SKScene. 
    GameScene *scene = (GameScene *)[SKScene nodeWithFileNamed:@"GameScene"]; 
    if (!scene) { 
     NSLog(@"Failed to load GameScene.sks"); 
     abort(); 
    } 

    // Set the scale mode to scale to fit the window 
    scene.scaleMode = SKSceneScaleModeAspectFill; 

    return scene; 
} 

[GameScene.h ] [3]

#import <SpriteKit/SpriteKit.h> 

@interface GameScene : SKScene 

+ (GameScene *)newGameScene; 

@end 

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

  • Нет связанных вопросов^_^