Ich möchte mein SpriteKit-Spiel in einer geordneteren und klareren Weise einrichten, also entschied ich mich, Klassen für jede Art von Sprite-Knoten zu verwenden.Physik auf eine benutzerdefinierte SKSpriteNode-Klasse anwenden
In meinem Fall habe ich eine separate Klasse Spieler in swift, die wie dieser
import SpriteKit
class Player: SKSpriteNode {
func initializePlayer() {
self.physicsBody = SKPhysicsBody(rectangleOf: CGSize(width: self.size.width, height: self.size.height))
self.physicsBody?.affectedByGravity = true
}
func moveLeft() {
print("left")
}
func moveRight() {
print("right")
}
}
ich diesen Sprite Knoten richtig in der Szene EDITOR'S Kundenspezifische Klasse Inspektor Referenz aussieht und ich kann die Klassenmethoden ohne auslösen Problem - so funktioniert das gut.
ich verweisen auf die Spielerklasse in meinem GameScene wie folgt aus:
class GameplayScene: SKScene {
var player: Player = Player()
let myNode = SKSpriteNode(imageNamed: "player")
override func didMove(to view: SKView) {
player.initializePlayer()
}
}
Aber die Physik Körper nicht angewendet wird, und ich kann nicht herausfinden, warum dies der Fall ist.
Nachdem ich den Physikkörper zum Sprite-Knoten hinzugefügt habe, würde ich erwarten, dass der Knoten vom Bildschirm fällt. Aber das passiert nicht und ich kann nicht verstehen warum.
Hat jemand eine Ahnung, wie ich einen Physikkörper aus der Klasse anwenden kann?
was meinst du mit _der Physik Körper wird nicht angewendet_? – Mina
Nachdem ich den Physikkörper zum Sprite-Knoten hinzugefügt habe, würde ich erwarten, dass der Knoten vom Bildschirm fällt. Aber das passiert nicht und ich kann nicht verstehen warum. – boehmatron
Ich kann nicht sehen, dass auf dem geposteten Code, Sie nur Physik Körper zu sich selbst hinzugefügt. sei genauer und poste einige weitere Codes. – Mina