Ich möchte einfach 'didSimulatePhysics()' einprogrammieren, damit der Hai in die entgegengesetzte Richtung geht, wenn er das Ende des Bildschirms erreicht. Aber ich kann nicht Swift bekommen, den Hai zu finden, wenn ich versuche, es zu benutzen in dem 'didSimulatePhysics()'Siehe Objekt in einer anderen Klasse
GameElementsClass:
import SpriteKit
extension GameScene {
func createSharkAtPosition (position:CGPoint, ofType type:SharkType) -> SharkNode {
let node = SharkNode()
let position = CGPoint(x: position.x * scaleFactor, y: position.y)
node.position = position
node.name = "SHARKNODE"
node.sharkType = type
var sprite:SKSpriteNode
sprite = SKSpriteNode(imageNamed: "shark1")
node.addChild(sprite)
node.physicsBody = SKPhysicsBody(rectangleOfSize: sprite.size)
node.physicsBody?.dynamic = true
node.physicsBody?.affectedByGravity = false
node.physicsBody?.velocity.dx = CGFloat(-60)
node.physicsBody?.categoryBitMask = CollisionBitMask.Shark
node.physicsBody?.collisionBitMask = 0
return node
}
}
GameSceneClass:
func sharkMaker() {
let randomXPos = arc4random_uniform(170) + 10
let yPosition = CGRectGetMidY(self.frame) + 200 * CGFloat(counter)
counter += 1
let shark = createSharkAtPosition(CGPoint(x: CGFloat(randomXPos), y: yPosition - 180), ofType: SharkType.normalShark)
foreground.addChild(shark)
}
override func didSimulatePhysics() {
if node.position.x < -10 {
node.xScale = -1
node.physicsBody?.velocity.dx = CGFloat(50)
}else if (node.position.x > self.size.width + 10) {
node.xScale = 1
node.physicsBody?.velocity.dx = CGFloat(-50)
}
Sie sollten Ihren Hai aus Ihrer Spieleszene erstellen. – Max
möchte den Code unten in didSimulatePhysics() hinzufügen. aber ich kann nicht scheinen, um es zu arbeiten, 'wenn player.position.x <-10 { shark.xScale = shark.xScale * -1 shark.physicsBody? .velocity.dx = CGFloat (60) } else if (player.position.x> self.size.width + 10) { shark.xScale = shark.xScale shark.physicsBody? .velocity.dx = CGFloat (-60) } ' – rkoi95
Sie brauchen [bearbeiten Sie Ihre Frage ] (http://stackoverflow.com/posts/36320205/edit). Im Moment ist es unklar. Wir haben nur eine vage Beschreibung von dem, was Sie versuchen zu tun. Sie haben kein [MCVE] (http://stackoverflow.com/help/mcve) erstellt. Ein wenig über [objektorientierte Programmierung] zu lernen (http://importblogkit.com/2015/04/programming-objectively/) wird einen langen Weg zurücklegen. – nhgrif