Ich bin neu im Spieledesign und weiß nicht wirklich, wie die Dinge gemacht werden. Ich denke daran, ein iOS-Spiel zu entwickeln, bei dem ein Schiff so hoch wie möglich fliegen muss (mit variabler Geschwindigkeit) und unterwegs Power-Ups usw. sammelt.
Was ist der Weg hierher? Sollten der Hintergrund und die Gegenstände von oben nach unten scrollen oder sollte das Schiff wirklich nach oben fliegen und die Ansicht damit verschieben?
Antworten:
Alles ist relativ. Wirklich, Sie verändern Ihre Ansicht immer relativ zu Ihrer festen Spielerposition.
Wenn Sie also den Bildschirm vorerst vergessen, nehmen wir an, Sie haben diese drei Schritte (die Positionen darstellen, die in jeder Spielschleife aktualisiert werden):
playerWorldPosition = 50, 100; objectWorldPosition = 60, 200;
playerWorldPosition = 55, 110; objectWorldPosition = 60, 160;
playerWorldPosition = 60, 120; objectWorldPosition = 60, 120;
(jeweils als x, y)
Wie Sie sehen können, fliegt der Spieler nach oben oder springt nach oben und bewegt sich leicht nach rechts, während das Objekt (möglicherweise ein Powerup) gerade nach unten fällt. Der Spieler fängt das Powerup. Wie zeichnet man das auf dem Bildschirm?
Nehmen wir zunächst an, Sie möchten, dass sich Ihr Player jederzeit in der Mitte des Bildschirms befindet. Die Ansicht bleibt also für den Player gesperrt - dies ist der einfachste Ansatz zur Visualisierung. Die Position Ihres Spielers ist dann immer
screenCentre
(dhscreenWidth/2, screenHeight/2
). Wie erhalten Sie dann die Bildschirmposition anderer Objekte auf der Welt?Sie können sehen, dass diese Formel auch für den tatsächlichen Spieler funktioniert, da
(playerWorldPosition- playerWorldPosition) + screenCentre
gleich istscreenCentre
. Sie können also dieselbe Formel auf jede Entität in Ihrem Spiel anwenden und eine Liste durchgehen. Sie können diesen einfachen Ansatz verwenden, um auf andere Dinge aufzubauen (z. B. Kameraverzögerung, Fälle, in denen Sie sich in der Ecke eines Levels befinden usw.).quelle