SKScene ist eine Unterklasse von SKNode und wir können sie mit einer bestimmten Größe initialisieren. Aber SKNode selbst fehlt diese Fähigkeit und seine Größe ist das kleinste Rechteck, das die Kinder enthält. Manchmal brauche ich meinen SKNode, um sich zum Fenster zu strecken, egal wie klein der Inhalt ist. Daher möchte ich in der Lage sein, SKNode-Klasse anpassen, indem Sie die Möglichkeit, seine Größe einzustellen. Hast du eine Ahnung wie?Wie man einen SKNode ableiten kann, um ihn mit einer vorgegebenen Größe zu initialisieren
6
A
Antwort
11
Seltsamerweise scheint es keine Möglichkeit zu geben, dies in sprite kit eingebaut zu machen. Sie können durch Hinzufügen eines transparenten SKSpriteNode zu Ihrem Knoten begleichen:
- (id)initWithSize:(CGSize)size{
self = [super init];
if (self) {
SKSpriteNode *node = [SKSpriteNode spriteNodeWithColor:[UIColor colorWithWhite:1.0 alpha:0.0] size:size];
[self addChild:node];
node.zPosition = -1;
node.name = @"transparent";
node.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame));
}
return self;
}
Jetzt können Sie es auf die Größe initialisieren Sie möchten, müssen Sie nur die transparente Knoten Größe zu ändern, müssen sicher sein, wenn Sie ändern wollen die Knotengröße
+0
Ich denke, dass es für einen "Knoten" sehr sinnvoll ist, keinen eigenen Rahmen zu haben, und die hier vorgestellte Idee ist der beste Weg, dieses Problem anzugehen. IMHO natürlich – Mazyod
Verwandte Themen
- 1. Wie man einen SKNode zu UIImage macht
- 2. Wie man einen SKNode dreht, ohne seine Position zu ändern?
- 3. Konstante Geschwindigkeit Orbit um Punkt mit SKNode
- 4. Wie findet man eine vernünftige Größe für einen Datenbankverbindungspool und wie man ihn verifiziert?
- 5. Wie man einen Schlüssel drückt und ihn mit C# freigibt?
- 6. Mit jQuery live(), um Plugins zu initialisieren?
- 7. Wie man einen Schätzer dupliziert, um ihn auf mehreren Datensätzen zu verwenden?
- 8. Wie kann ich einen Hash serialisieren - deserialisieren, um ihn in der Datenbank zu speichern?
- 9. Stoppen Sie den Synchronisationsadapter, um ihn zu initialisieren, wenn Sie addPeriodicSync verwenden
- 10. wie man einen Text zu einer gegebenen Größe in einer Arbeitsblattzelle mit Birne php
- 11. Wie kann man aus einem Projektionstyp den richtigen Typparameter ableiten?
- 12. Wie kann ich den Index angeben, um ihn in einer MySQL Select-Abfrage zu verwenden?
- 13. Um alle überlappenden Datumsbereiche aus einer vorgegebenen Liste von Datumsbereiche
- 14. Wie kann ich die Größe des Kreisradius ändern, um ihn in den Absatz einzupassen?
- 15. Wie zeichne SKNode PhysicsBody zum Debuggen?
- 16. kann SKNode nicht von .sks-Datei zu benutzerdefinierter Klasse
- 17. Ableiten von einer Klasse mit Operator überladen
- 18. Python: Wie genau kannst du einen String nehmen, ihn teilen, ihn umkehren und ihn wieder zusammenfügen?
- 19. Wie kann man den Rückgabewert des Funktors ableiten?
- 20. Wie kann ich UIView ableiten?
- 21. WPF: Wie zeichnet man einen Kreis und zieht ihn herum?
- 22. Wie kann ich ein Array initialisieren, ohne es zu kennen?
- 23. Wie deklariert man einen Wert vor der Abfrage und weist ihn einer Variablen zu?
- 24. Haskell: „Kann nicht ableiten“ Fehler mit runST
- 25. Wie kann ich einen String zurück in einen String [] konvertieren, wenn ich `Arrays.toString` benutzt habe, um ihn so zu konvertieren?
- 26. Wie kann ich einen Beitrag in WordPress einfügen und ihn einer Kategorie zuordnen?
- 27. Wie kann ich einen Wert aktualisieren, ohne ihn zurückzusetzen?
- 28. UITapGestureRecognizer auf SKNode: Konvertieren von Koordinaten von UIView SKNode
- 29. Kann man einen Vektor mit Arrays fester Größe erzeugen?
- 30. Wie Javascript zu initialisieren auf einer Webseite
Ein SKNode hat keine Größe und ich glaube seine frame.size wird immer 0,0 sein. Wenn Sie den Inhalt eines Knotens dehnen möchten, müssen Sie dies für jedes Kind einzeln tun. – LearnCocos2D
Und haben Sie eine Idee, wie dies in der SKScene Klasse gemacht wird? Wie du weißt, ist es ein Subclss von SKNode, also wurden natürlich noch ein paar mehr Fetures hinzugefügt und die Größe eingestellt. –