ios - 尝试添加一个已经有父节点和线程 1 的 SKNode:signal SIGABRT
问题描述
我尝试使用我的 Asteroid 类,但我不断收到此错误消息。我尝试了一切,但我似乎无法弄清楚。
只有一颗小行星出现,然后出现一条线
AppDelegate:线程 1:信号 SIGABRT
我是 swift 的初学者,欢迎任何帮助。
class Asteroides:SKSpriteNode {
init(img:String){
let texture = SKTexture(imageNamed: img)
super.init(texture: texture, color: .clear, size: texture.size())
self.name = "Asteroid"
self.setScale(0.2)
self.zPosition = 2
self.physicsBody = SKPhysicsBody(circleOfRadius: self.size.width/3.3, center: self.anchorPoint)
self.physicsBody!.affectedByGravity = false
self.physicsBody!.categoryBitMask = GameScene.physicsCategories.asteroid
self.physicsBody!.collisionBitMask = GameScene.physicsCategories.none
self.physicsBody!.contactTestBitMask = GameScene.physicsCategories.planet | GameScene.physicsCategories.bullet
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func random() -> CGFloat {
return CGFloat(Float(arc4random()) / 0xFFFFFFFF) //générer un nombre aléatoire
}
func random(min: CGFloat, max: CGFloat) -> CGFloat {
return random() * (max - min) + min
}
func addAsteroid (parent: GameScene) {
let randomStart1 = random(min: self.size.height/2, max: parent.size.height - self.size.height/2)
let startPoint1 = CGPoint(x:randomStart1 , y:parent.size.width + self.size.width/2 )
let endPoint1 = CGPoint(x: randomStart1, y: -self.size.width/2)
self.position = startPoint1
parent.addChild(self)
let moveAsteroid = SKAction.move(to: endPoint1 , duration: 3.5)
let deleteAsteroide = SKAction.removeFromParent()
let asteroidSeq = SKAction.sequence([moveAsteroid,deleteAsteroide])
self.run(SKAction.repeatForever(asteroidSeq))
}
}
在游戏场景中:
private var asteroide = Asteroides(img: "Asteroid")
func newlevel(){
func parametersLevel(spawn : SKAction){
let spawning = spawn
let waitSpawn = SKAction.wait(forDuration: 0.8)
let sequence = SKAction.sequence([waitSpawn,spawning])//sequence:asteroides+attendre 0.8 sec
let spawnForever = SKAction.repeatForever(sequence)
self.run(spawnForever)
}
parametersLevel(spawn:SKAction.run(asteroids))
}
func asteroids (){
asteroide.addAsteroid(parent: self)
}
解决方案
推荐阅读
- arrays - 对象作为 React 子对象无效(找到:带键的对象)。如果您打算渲染一组孩子,请改用数组
- c++ - 解析 json 时出现 std::lenght_error
- css - 使用 object-fit:cover 时如何允许 Bootstrap 相对响应的 img 高度?
- android - 运行应用程序时出现颤振闪屏错误
- r - 如何将一个观察分解为几个子观察?
- windows - 如何在后台运行windows powershell脚本
- flutter - Flutter Web 应用程序无法在移动浏览器上运行。如果在移动浏览器上运行颤振代码,如何调试错误?
- javascript - 如何在不呈现子项的组件中呈现子项?
- scala - 为什么我从 Spark 编写的任何文件都不是人类可读的?
- .net - MassTransit.QuartzIntegration.ScheduledMessageJob:无法实例化没有空构造函数的类型(参数'ScheduledMessageJob')'