在我的游戏中,我产生了许多具有随机坐标的敌人,但他们共享相同的内部数据。
目前,我有一个函数SpawnEnemy(),它如下所示:
func spawnRedPawn(timer: NSTimer) {
var redPawn = Ship(entityNamed: ESHIP_REDPAWN)
let action = SKAction.moveToX(0, duration: timer.userInfo as! NSTimeInterval)
let actionDone = SKAction.removeFromParent()
redPawn.position = CGPoint(x: self.size.width, y: CGFloat(arc4random_uniform(UInt32(self.size.height - redPawn.size.height))))
redPawn.setupPhysicsBody(PC.enemy)
redPawn.setupContactTestBitmask([PC.projectile, PC.player])
redPawn.addEmitter("propulsionParticle", offset: CGPointMake(redPawn.size.width / 2 + 5, 0))
redPawn.runAction(SKAction.sequence([action, actionDone]))
self.addChild(redPawn)
}PS:函数格式(由NSTimer Selector()调用)可能会被更改
我是SpriteKit的新手,但我觉得这个设置过程是相当耗费资源的,对吗?
我的问题是:只运行一次这个函数,然后只复制创建的敌人,会更好吗?
发布于 2015-05-23 13:28:04
以下是一些你应该知道的基本知识:
您可以做的事情(特别是当您遇到性能问题时)是:
一种方法是预先创建一堆节点并使用它们,直到游戏结束。这样,您就不会多次重新创建SKSpriteNodes (有时会导致明显的滞后)。这里你可以读到这方面的内容。
重要信息:
希望这能帮点忙。
https://stackoverflow.com/questions/30412861
复制相似问题