带有 Skview 的 ViewController - SpriteKit SKScene

Posted

技术标签:

【中文标题】带有 Skview 的 ViewController - SpriteKit SKScene【英文标题】:ViewController with Skview - SpriteKit SKScene 【发布时间】:2016-09-10 03:23:04 【问题描述】:

第一次尝试并有点卡在这个上......

我有一个 ViewController 我希望在其视图中显示一个 SKScene 我已经尝试了所有我能想到的方法,但它没有显示出来


添加 SpriteKit/SpriteKit.h Main.storyboard 有一个单一的视图控制器 (myViewController)。 myViewController 的视图 - 将类更改为 SKView。 (见下图) Viewdidload 链接到我希望加载的 SKScene (HelloScene) #import "HelloScene.h"
//ViewController.m
#import "myViewController.h"
#import <SpriteKit/SpriteKit.h>
#import "HelloScene.h"
@interface myViewController ()

@end

@implementation myViewController

- (void)viewDidLoad

    [super viewDidLoad];
    SKView *spriteView = (SKView *) self.view;
    spriteView.showsDrawCount = YES;
    spriteView.showsNodeCount = YES;
    spriteView.showsFPS = YES;


- (void)didReceiveMemoryWarning 
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.


HelloScene.h

 #import <SpriteKit/SpriteKit.h>
  @interface HelloScene : SKScene 
  @end

HelloScene.m

#import "HelloScene.h"

@interface HelloScene ()
@property BOOL contentCreated;
@end

@implementation HelloScene

- (void)didMoveToView: (SKView *) view

        [self LoadSceneContents];


- (void)LoadSceneContents

    self.backgroundColor = [SKColor blueColor];
    self.scaleMode = SKSceneScaleModeAspectFit;
    [self addChild: [self newHelloNode]];


- (SKLabelNode *)newHelloNode

    SKLabelNode *helloNode = [SKLabelNode labelNodeWithFontNamed:@"Chalkduster"];
    helloNode.text = @"Hello, World!";
    helloNode.fontSize = 42;
    helloNode.position = CGPointMake(CGRectGetMidX(self.frame),CGRectGetMidY(self.frame));
    return helloNode;


@end

上图:选择视图控制器的视图对象并将其类更改为SKView

【问题讨论】:

【参考方案1】:

错过了正确配置场景...

// Create and configure the scene.
    HelloScene *theScene = [HelloScene sceneWithSize:spriteView.bounds.size];
    theScene.scaleMode = SKSceneScaleModeAspectFill;

    // Present the scene.
    [spriteView presentScene:theScene

];

希望对别人有所帮助

【讨论】:

以上是关于带有 Skview 的 ViewController - SpriteKit SKScene的主要内容,如果未能解决你的问题,请参考以下文章

SpriteKit:为什么SKView在一个高度消失但出现在另一个高度? SKView的最大高度是多少?

SKView 在场景前闪烁灰色

iOS:UIView 与 SKView

如何使 SKView 的背景颜色清晰

无法设置 SKView 背景颜色

如何正确调整 SKView 子视图和 SKScene 的大小