【发布时间】:2020-09-18 22:24:44
【问题描述】:
我有一个通过 UI 预定义的英雄和敌人精灵,我可以像这样调用:
let heroSprite = childNode(withName: HeroName) as! SKSpriteNode
heroSprite.physicsBody!.categoryBitMask = HeroCategory
这是因为我的逻辑在实现 SKScene.childNode(_) 的 SKScene 子类中
现在我想将英雄逻辑提取到 SKSprite 的可重用子类中,而不必以编程方式执行所有操作,例如分配纹理等。
我想获得通过 UI 构建地图的好处,但我想获得面向对象的好处,例如:
class Hero: SKSpriteNode { func heroCustomBehaviour(_) }
class Enemy: SKSpriteNode { func enemyCustomBehaviour(_) }
或者:
class Hero: SKNode { func heroCustomBehaviour(_) }
class Enemy: SKNode { func enemyCustomBehaviour(_) }
如果我可以在不将 SKScene(破坏依赖倒置)传递给子类的情况下做到这一点,那就太好了。
【问题讨论】:
标签: ios swift sprite-kit