SpriteKit 游戏逻辑

Posted

技术标签:

【中文标题】SpriteKit 游戏逻辑【英文标题】:SpriteKit Game Logic 【发布时间】:2017-03-08 01:03:38 【问题描述】:

我正在创建一个基于关卡的游戏,使用两个 SKSpriteNode 作为按钮转到下一个或上一个关卡,这将导致 GameViewController 呈现一个新场景。我使 SKScene 具有直接引用 gameviewController 的属性,以便调用当前的新场景函数,但据我了解,这打破了 MVC 模型。这很糟糕吗?什么是替代品?

【问题讨论】:

【参考方案1】:

ios 编程的标准替代方案是一种称为委托的模式。首先,您创建一个协议来抽象出切换级别的实现。

protocol LevelSelector: class 
    func didSelectNextLevel(from scene: SKScene)
    func didSelectPreviousLevel(from scene: SKScene)

GameViewController 实现此协议以更改适当级别的场景。每个实现关卡的场景都有:

weak var levelSelector: LevelSelector?

GameViewController 然后将自己设置为每个关卡场景的levelSelector

scene.levelSelector = self

当用户点击代表下一级和上一级按钮的SKNodes 时,调用相应的方法:

levelSelector?.didSelectNextLevel(from: self)

//OR

levelSelector?.didSelectPreviousLevel(from: self)

【讨论】:

以上是关于SpriteKit 游戏逻辑的主要内容,如果未能解决你的问题,请参考以下文章

SpriteKit给游戏弹跳角色添加一个高度标示器

简单的JS鸿蒙小游戏——记忆翻牌之游戏逻辑详解

Html5 Egret游戏开发 成语大挑战游戏逻辑和数据处理

Unity中简单的游戏逻辑

小游戏Unity游戏愤怒的足球(小鸟)

2020游戏开发入门-05(游戏逻辑,主要是状态同步和帧同步)