Ich versuche ein horizontal scrollendes Menü in meinem neuen Sprite Kit-Spiel zu erstellen. Da Sprite Kit ziemlich neu ist, gibt es nicht viele gute Tutorials für Sprite Kit. Ist UIScrollView mit Sprite Kit kompatibel? Ich habe verschiedene Möglichkeiten ausprobiert:
%Vor%Das hat nicht funktioniert. Ich habe noch nie zuvor mit UIScrollView gearbeitet. Kann jemand mit UIScrollView ein horizontal scrollendes Menü erstellen? Ein Beispiel für das, was ich versuche zu tun, ist in Bloons TD 5 mit ihrem Menü.
Ich weiß, dass diese Frage schon ein paar Monate alt ist, aber ich suchte auch nach einem Scroll-Menü-Schieberegler, um Ebenen in meinem SpriteKit-Spiel auszuwählen. Ich konnte keinen Code finden, der bereits existierte, und der Gedanke, den UIScrollView in mein SpriteKit-Spiel einzupassen, gefiel mir nicht. Also habe ich mein eigenes Schiebe-Menü für die Level-Auswahl geschrieben.
Ich habe alle Bewegungen des UIScrollView so simuliert, dass es natürlich aussieht, und kann so konfiguriert werden, dass es von links nach rechts oder von oben nach unten scrollt.
Als Bonus habe ich einen Parallax-Hintergrund auf dem Menü erstellt, der leicht mit neuen Bildern für ein individuelles Aussehen ausgetauscht werden kann.
Der Code für das Scrolling-Menü ist sehr gut kommentiert, so dass es nicht zu viele Integrationsprobleme geben sollte.
Das github-Projekt hat eine voll funktionsfähige Demo mit Welten, Levels und Parallax-Bildern. Wenn es dir gefällt, markiere meine Antwort als nützlich, damit ich etwas Ansehen erlangen kann:)
Sie können UIKit-Steuerelemente auf jeden Fall mit SpriteKit kombinieren. Von der SKScene, in der Sie ein UIScrollView haben möchten, fügen Sie die Bildlaufansicht zu self.view hinzu, wie folgt: [self.view addSubview: scroll]. Möglicherweise möchten Sie dies in der Ansichtsmethode - (void) didMoveToView: (SKView *) in Ihrem SKScene tun. Denken Sie daran, die Bildlaufansicht aus dem SKView zu entfernen, sobald Sie den SKScene, der sie verwendet, verlassen. Sie können dies in der Ansichtsmethode - (void) willMoveFromView: (SKView *) tun. Vergessen Sie nicht, die contentSize auf UIScrollView zu setzen.
Hinweis : Wenn Sie SpriteKit-Knoten über die UIKit-Steuerelemente haben möchten, müssen Sie Ihren eigenen SKSpriteNode schreiben, der sich wie ein UIScrollView verhält.
Erweitern bei Hinweis : Wenn Ihre Bildlaufansicht Sprite-Kit-Knoten und nicht nur UIKit-Ansichten enthalten muss, können Sie UIScrollView nur verwenden, wenn Sie etwas cleveres tun, wie in der Antwort auf vorgeschlagen Diese Frage hier
Es gibt viele Möglichkeiten, um es zu erhalten, durch SKCameraNode
, mit UIKit
Elemente wie UIScrollView
oder andere Wege.
Aber ich möchte Ihnen zeigen, wie es geht einfach mit SpriteKit
only .
Konzeptionell sollten Sie eine größere SKNode
erstellen, die jede einzelne Stimme Ihres Menüs enthält, wobei jedes Element die gleiche Entfernung von der anderen hat.
Sie können das Scrollen mit einem SKAction
simulieren, das unseren Knoten in die Mitte des nächsten sichtbaren Elements bewegt.
GameViewController
: GameScene
: Wie Sie sehen, können wir mit touchesBegan
die berührte Welt erkennen und auswählen, mit touchesMoved
können wir den beweglichen Knoten an die richtige Position bewegen und die nächste sichtbare Welt und mit touchesEnded
erkennen Wir können das sanfte Scrollen zur automatischen Bewegung auf die aktuell nächste sichtbare Stimme nach einer Berührung erstellen.
Ausgabe :
Tags und Links uiscrollview sprite-kit horizontalscrollview menu horizontal-scrolling