【发布时间】:2014-09-26 11:23:50
【问题描述】:
我是一名初级程序员,在 Xcode 的 sprite-kit 中开发游戏。我想使用不同的 SKScene 制作游戏结束场景。我知道使用视图控制器,如果您转换到第二个视图控制器(例如从游戏视图到游戏结束视图),当我们想要返回到以前的视图控制器时,我们将使用以下行代码:
[self.navigationController popViewControllerAnimated:YES];
SKScene 是否有与此等价的功能?我使用的方法似乎创建了游戏 SKScene 的新实例(因此每次我在场景之间移动时内存都会增加很多)。
具体来说,我使用以下 (1) 从游戏场景转到游戏结束场景和 (2) 从游戏结束场景转到游戏场景:
(1)(这是 GamePlayScene.m)
SKScene *gameOverScene = [[LTGameOverScene alloc] initWithSize:self.size loss:YES];
SKTransition *reveal = [SKTransition fadeWithDuration:0.5];
[self.view presentScene:gameOverScene transition:reveal];
(2)(这些是 GameOverScene.h)
-(id)initWithSize:(CGSize)size loss:(BOOL)loss
...
SKTransition *reveal = [SKTransition flipHorizontalWithDuration:0.5];
MyScene * scene = [MyScene sceneWithSize:self.view.bounds.size];
scene.scaleMode = SKSceneScaleModeAspectFill;
[self.view presentScene:scene transition: reveal];
【问题讨论】:
-
由您来管理游戏中的场景;传统应用程序没有像故事板这样的内置行为。您将需要创建自己的推送/弹出场景控制器,或者您可以简单地转换到新场景并自动释放旧场景(及其内容)。
标签: ios objective-c xcode sprite-kit transition