首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SKTransition不在Swift工作

SKTransition不在Swift工作
EN

Stack Overflow用户
提问于 2014-08-09 05:32:01
回答 2查看 1.1K关注 0票数 1

我有一个非常简单的SpriteKit游戏,用Swift编写,其中有两个场景,我正试图在两者之间进行转换。这段代码工作得很完美:

代码语言:javascript
复制
let skView = self.view as SKView

let scene = GameScene(size: self.scene.size)
scene.size = skView.bounds.size
scene.scaleMode = .AspectFill

//This line shows the new scene immediately (as expected)
skView.presentScene(scene) 

当我用以下代码替换上面的代码时,麻烦就来了:

代码语言:javascript
复制
let sceneTransition = SKTransition.doorsCloseHorizontalWithDuration(2.0)
skView.presentScene(scene, transition: sceneTransition)

当我这样做时,什么都不会发生(当前的场景仍然在屏幕上)。我尝试过几次不同的转换,但总是有相同的结果。

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-09 17:48:38

解决了。

事实证明,上面的代码没有什么问题。问题是,我试图根据某个SKPhysicsBody的位置在更新函数中执行它。转换不是瞬间发生的,因此它给了更新被重复调用的时间,这会一次又一次地重新触发转换。这导致了这种转变从未发生过。

修正是添加一个bool来检查我是否已经启动了转换,所以我只尝试了一次。

票数 1
EN

Stack Overflow用户

发布于 2014-09-18 22:15:59

如果有其他人经历过这种情况,你可能也想暂停即将离开的场景。其中的一些逻辑可能是改变状态或干扰过渡。

试着设置

代码语言:javascript
复制
  transition.pausesOutgoingScene = YES;

看看能不能帮上忙,

或者使用它作为解决方案,如果这是您的意图,或者设置断点(在创建转换之后尝试update: )并查看发生了什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25215517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档