#ios #sprite-kit #swift
#iOS #sprite-kit #swift
Вопрос:
Я пытаюсь создать несколько платформ для перехода на спрайт игрока.
Это мой текущий код:
var mainGroundAdded = false //starting ground for the player to run on
func addGround() {
let groundSize = CGSizeMake(self.frame.width/2, 50)
let ground = SKShapeNode(rectOfSize: groundSize)
ground.fillColor = SKColor.brownColor()
ground.name = "ground"
ground.physicsBody = SKPhysicsBody(rectangleOfSize: groundSize)
ground.physicsBody.affectedByGravity = false
ground.physicsBody.dynamic = false
ground.physicsBody.restitution = 0.0
ground.physicsBody.categoryBitMask = groundCategory
ground.physicsBody.collisionBitMask = rCategory
if (mainGroundAdded == false) {
ground.position = CGPointMake(0, 0)
mainGroundAdded = true
}
else {
ground.position = CGPointMake(self.frame.width ground.frame.width, 0)
}
self.addChild(ground)
let move: SKAction = SKAction.moveToX(-ground.frame.width, duration: 4)
let remove = SKAction.removeFromParent()
ground.runAction(SKAction.sequence([move, remove]))
}
Вот как я постоянно порождаю землю
override func update(currentTime: CFTimeInterval) {
/* Called before each frame is rendered */
var timeSinceLast: CFTimeInterval = currentTime - self.lastUpdateTimeInterval
self.lastUpdateTimeInterval = currentTime
if (timeSinceLast > 1) {
timeSinceLast = 1.0 / 60.0
self.lastUpdateTimeInterval = currentTime
}
self.updateWithTimeSinceLastUpdate(timeSinceLast)
}
func updateWithTimeSinceLastUpdate(timeSinceLast: CFTimeInterval) {
self.lastSpawnTimeInterval = self.lastSpawnTimeInterval timeSinceLast
if (self.lastSpawnTimeInterval > 1.5) {
self.lastSpawnTimeInterval = 0
self.addGround()
}
}
Земля была не такой большой, как остальная часть земли, которая порождается. Как я должен это исправить?