UIScrollView horizontal scrollendes Menü in Sprite Kit

7

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ü.

    
PoKoBros 25.12.2013, 03:12
quelle

3 Antworten

14

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:)

    
Ron Myschuk 11.04.2014 21:01
quelle
6

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

    
Bokoskokos 27.12.2013 12:38
quelle
0

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 :

%Vor%

GameScene :

%Vor%

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 :

    
Alessandro Ornano 20.12.2017 08:25
quelle