So erstellen Sie eine vertikale Scroll-Menü im spritekit?
Ich bin auf der Suche zum erstellen eines shop-in meinem Spiel (In SpriteKit) mit den Tasten und Bilder, aber ich Brauch die items Scrollbar ist, so dass die Spieler können nach oben und unten scrollen im shop (Wie ein UITableView, aber mit mehreren SKSpriteNodes und SKLabelNodes in jeder Zelle). Irgendeine Idee, wie kann ich dies in SpriteKit?
- Dan, bist du herauszufinden, wie man die Tasten arbeiten mit Crashoverride777 s-Scrolling-Ansicht? ich habe Probleme
- ja habe ich, ich glaube mich zu erinnern, es zu tun war, dafür zu sorgen, dass die scroll-view beendet seinen Blättern wird statisch, da er sich nicht erkennen berührt, während Sie es dachte, es war immer noch scrollen, obwohl ich fand es war ein bisschen buggy manchmal so landete ich also nicht verwenden!
- was verwenden Sie dann? Ich brauche Hilfe mit meinem scroll-view für meine app!
- Ich habe einen Weg finden, um zu Blättern, aber es hat nicht irgendwelche der Trägheit des normalen scrollen (Menüpunkte nicht platzten, wenn Sie zu dem unten, im Menü bewegt sich nicht mehr, sobald Sie heben Sie Ihre touch usw) und fand es gar nicht gut, so dass ich eigentlich aufgegeben und änderte mein Menü-design ein wenig. Ich denke, du machst einen vertikalen Scroll-Menü Art?
- Ja und ich mache ein Geschäft als gut.
- verwenden Sie Crash-Methode, aber fügen Sie ein:
print("description of what code has just done")
am Ende jeder Abschnitt, dann sehen die Konsole, wie Sie versuchen und scrollen, es sollte Ihnen sagen, wo es vermasselt und Ihnen hoffentlich ermöglichen, zu verstehen, warum die Tasten nicht funktionieren (Oder zumindest das ist, was ich getan habe). Leider kann ich nicht mehr helfen, ich kann mich nicht genau erinnern, was ich getan habe um das Problem zu lösen in der Zeit.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die zweite Antwort, wie versprochen, habe ich gerade herausgefunden, das Problem.
Empfehle ich immer die neueste version von diesem code aus meinem gitHub-Projekt sofern ich änderungen vorgenommen, da diese Antwort, der link dazu ist auf der Unterseite.
Schritt 1: Erstellen Sie ein neues swift-Datei und fügen Sie diesen code
Diese eine Unterklasse von UIScrollView und stellt die grundlegenden Eigenschaften von es. Es als hat seinen eigenen berührt-Methode, die sich an der einschlägigen Szene.
Schritt 2: In Ihrem jeweiligen Szene, die Sie es verwenden möchten, erstellen Sie eine scroll-view und bewegliche Knoten-Eigenschaft wie so
und fügen Sie Sie der Szene in didMoveToView
Was Sie hier in der Zeile 1 ist Sie init der scroll-view-helper mit Ihnen Szene Abmessungen. Sie auch entlang der Szene für die Referenz-und die moveableNode, die Sie erstellt in Schritt 2.
Zeile 2 legen Sie die Größe des Inhalts der scrollView, in diesem Fall die doppelt so lang ist als die Bildschirmhöhe.
Schritt 3: - Fügen Sie Beschriftungen oder Knoten usw. und positionieren Sie diese.
in diesem Beispiel die Beschriftung auf der 2. Seite in der scrollView. Dies ist, wo Sie haben zu spielen, um Sie mit Etiketten und-Positionierung.
Ich empfehlen, dass, wenn Sie haben eine Menge Seiten in der scroll-Ansicht und eine Menge von Etiketten zu tun, die folgenden. Erstellen Sie eine SKSpriteNode für jede Seite in der scroll-Ansicht und jeder von Ihnen die Größe des Bildschirms. Rufen Sie wie page1Node, page2Node etc. Sie, als Sie alle Etiketten, die Sie wollen, zum Beispiel auf der zweiten Seite zu page2Node. Der Vorteil hier ist, dass Sie im Grunde positionieren können alle Ihre Sachen, wie gewohnt page2Node und als nur die position page2Node in der scrollView.
Sind Sie auch Glück, denn mit der scrollView vertikal (was u gesagt, Sie möchten), die Sie nicht brauchen, um jedes kippen und rückwärts Positionierung.
Machte ich einige Klasse func also, wenn Sie brauchen, um zu deaktivieren Sie Ihre scrollView incase Sie ein weiteres overlay-Menü ontop der scrollView.
Und schließlich vergessen Sie nicht, entfernen Sie die scroll-Blick von der Szene vor dem übergang zu einer neuen. Einer der Schmerzen beim Umgang mit UIKit in spritekit.
Für horizontales scrollen, ändern Sie einfach die scroll-Richtung auf die init-Methode auf .horizontale (Schritt 2).
Und jetzt der größte Schmerz ist, dass alles Umgekehrt bei der Positionierung Zeug. So ist die scroll-view geht von rechts nach Links. So müssen Sie die scrollView "contentOffset" - Methode, um es neu zu positionieren und im Grunde legen Sie alle Ihre Etiketten in umgekehrter Reihenfolge von rechts nach Links. Mit SkNodes wieder macht dies viel einfacher, wenn Sie verstehen, was passiert.
Hoffe, das hilft und sorry für die massive post, aber wie ich sagte, es ist ein bisschen wie ein Schmerz im spritekit. Lassen Sie mich wissen, wie es geht und wenn ich nichts übersehen habe.
Projekt ist auf gitHub
https://github.com/crashoverride777/SwiftySKScrollView
Haben Sie 2 Möglichkeiten
1) Verwenden Sie ein UIScrollView
Unten auf der Straße, das ist die bessere Lösung, da Sie Dinge wie momentum scrolling -, paging -, bounce-Effekte etc kostenlos. Jedoch müssen Sie entweder eine Menge von UIKit Zeug oder einige sub-classing zu machen, arbeiten mit SKSpritenodes oder Etiketten.
Überprüfen Sie mein Projekt auf gitHub ein Beispiel für
https://github.com/crashoverride777/SwiftySKScrollView
2) Mit SpriteKit
Richten Sie Ihre didMoveToView, fügen Sie die SKNode zu der Szene, und fügen Sie 2 Etiketten, eins für oben und eins für unten um zu sehen, dass es funktioniert!
Dann richten Sie Ihre berührt, begann Sie zu speichern die position Ihrer ersten Berührung:
Dann berührt, bewegt, mit dem folgenden code zu scrollen, den Knoten, indem Sie auf die Grenzen, auf die Geschwindigkeit gesetzt werden:
Alle Kredit geht an diesem Artikel
http://greenwolfdevelopment.blogspot.co.uk/2014/11/scrolling-in-sprite-kit-swift.html
Hier ist der code, den wir verwendet, um zu simulieren
UIScrollView
Verhalten fürSpriteKit
Menüs.Grundsätzlich müssen Sie eine dummy -
UIView
entspricht die Höhe derSKScene
dann fütternUIScrollView
scrollen und Tippen Sie auf Ereignisse, um dieSKScene
für die Verarbeitung.Es ist frustrierend Apple nicht bieten diese nativ, aber hoffentlich sonst niemand hat Zeit zu verschwenden, den Wiederaufbau der Funktionalität!
Ich mag die Idee, fügen Sie ein SKCameraNode Blättern "my menu" -Szene. Ich habe gegründet dieser Artikel wirklich nützlich. Sie müssen nur die Kamera-position zu bewegen, Ihr Menü. Im Swift 4