RPGMakerXP/Tutorials/Eigenen Titelbildschirm mithilfe einer Map erstellen

Aus Scientia
Version vom 15. August 2013, 11:23 Uhr von Playm (Diskussion | Beiträge)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche
Bau 64.png Dieser Artikel ist mangelhaft. Hilf mit, ihn zu verbessern und zu vervollständigen!

Folgende Änderungen sind erforderlich: Grafik überarbeiten


Eigenen Titelbildschirm mithilfe einer Map erstellen Schwierigkeitsgrad Stern.pngSchwierigkeitsgrad Stern.png
Autor Hüpfende Kokosnuss
Thematik RGSS
Vorraussetzungen Programme:
  • RPG Maker XP und das Standard-RTP

Fähigkeiten:

  • etwas Zeit (Anfänger: nehmt euch mal ne Stunde!)
  • ein wenig Interesse am RGSS bzw. amgroben Aufbau eines Spiels
  • durchschnittliche Eventkenntnisse
  • Diese Grafik klick! und diese Grafik klick!


Willkommen im Tutorial für euer eigenes, individuelles Titelmenü! Euer Titelmenü soll später so einfach funktionieren, wie ihr auch eine ganz normale Spielmap aufbauen würdet. Aber bis dahin ist es ein… naja nicht ganz so weiter Weg.

Startposition auswählen

Titelmap tut 01.jpg

Wir werden unser Titelmenü nach folgendem Prinzip aufbauen: Wir befehlen dem RPG-Maker über RGSS, das normale Titelmenü einfach zu überspringen und den Spieler auf eine Map zu setzen, ohne das der Titelbildschirm angezeigt wird. Und zwar auf die Startmap. Auf dieser Startmap erstellen wir dann ganz easy nur mit Events unser wunderschönes Titelmenü. Dazu machen wir erstmal eine leere Map und bestimmen dort irgendwo den Startpunkt des Spielers. Dann ändern wir in der Datenbank das Startteam, nämlich so, das am Anfang niemand in der Gruppe ist. Somit wird die Spielergrafik unsichtbar.

Standardtitelmenü überspringen

Jetzt müssen wir nur noch den Maker dazu bekommen, unseren Helden direkt auf diese Map zu setzen anstatt erst das Titelmenü aufzurufen. Und das machen wir mit RGSS. Erstmal ruft ihr den
Spriteset MenuItemsRMXP.png
Script-Editor auf.

Wenn ihr das Game startet führt der Maker zuerst das aus, was in Main steht. Wie ihr seht steht dort unter anderem $scene = Scene_Title.new. Tja, dann schauen wir mal was in Scene_Title steht. Na sowas! Da scheint doch tatsächlich drinzustehen, wie unser Titelmenü auszusehen hat. Tja lieber Maker, aber nicht mit uns, was? Hm. Jetzt steht da doch in den Zeilen unter $game_system = Game_System.new doch wirklich, dass ein Fenster angezeigt werden soll. Und das man erst auf die Startmap kommt, wenn der Spieler Neues Spiel anwählt!

Das ändern wir mal lieber. Wir löschen alles, was unter $game_system = Game_System.new steht bis zu

@sprite.bitmap.dispose
@sprite.dispose

Titelmap tut 03.jpg

Jetzt sollte unter $game_system = Game_System.new nur noch end stehen und danach der nächste Abschnitt (der übrigens def update heißt).

So. Wollt ihr das Spiel mal starten? Böser Fehler! Jetzt weiß der RPG-Maker doch gar nicht, was der Spieler will! Der fragt sich jetzt: „Will der jetzt ein neues Spiel anfangen, laden oder ausmachen? Mist! Irgend so ein Depp hat ausgerechnet den Teil des Menüs gelöscht, in dem der Spieler mir das sagen müsste...“

Tja! Wir wissen doch was wir wollen, nicht? Er soll automatisch auf die Startmap gebracht werden. Und wie? Naja dazu müsste er "Neues Spiel" anwählen! Kein Problem! Wir schreiben einfach unter $game_system = Game_System.new noch command_new_game. Das bedeutet, dass das Titelmenü jetzt endlich übersprungen wird und der Spieler immer automatisch auf der Startmap landet.

Probiertes mal. Und dreht vorher eure Boxen laut auf. So! Habt ihr den Ton gehört? Als würde man Neues Spiel auswählen. Das ist ja doof, der Ton soll ja nicht immer kommen bevor das Spiel startet. Also sucht euch im Script unter Scene_Title noch schnell die Zeile $game_system.se_play($data_system.decision_se) heraus. Sie müsste direkt unter def command_new_game stehen. Titelmap tut 05.jpg

Eigenes Titelmenü aufbauen

Sooo! Und nun brauchen wir fast nur noch unsere vorhandenen Event-Kenntnisse.

Gestaltet die Map wie ihr wollt, sie ist euer Titelscreen. Wenn ihr lieber ein Bild haben wollt, importiert es als Panorama und stellt euer Tileset so ein, das ihr dieses Bild als Panorama habt.

Das tolle ist ja, das ihr eure Map beweglich machen könnt. Nehmt zum Beispiel eine Figur und lasst sie auf der Map herumlaufen. Oder zeigt irgendwelche Pictures an die sich immer verschieben. Das ist euch überlassen. Vergesst die BGM nicht!

Tja! Jetzt habt ihr ne tolle Map, beziehungsweise einen tollen Titlescreen, aber wie kommt ihr weiter? Jetzt kommen eure Bilder zum Einsatz, die ihr euch malen solltet (Siehe was wird benötigt).

Also, euer Titelmenü ist mit einem einzigem Event schnell gemacht. Erstmal die Logik:

Wir machen 3 Auswahlmöglichkeiten:

  • Neues Spiel
  • Spiel Laden
  • Ende

Das bedeutet, das jedes Mal etwas anderes passiert, wenn wir Enter drücken. Wenn wir Enter drücken während Neues Spiel markiert ist, startet ein neues Spiel. Wenn wir Enter drücken, während Spiel laden markiert ist, kommen wir in den Ladebildschirm. Und wenn wir Enter drücken, während Ende markiert ist, wird das Game beendet.

Folglich brauchen wir eine Variable! An dieser erkennen wir, welche Option gerade markiert ist. In meinem Fall Variable 26. Und zwar so:

  • Steht sie auf 1: Neues Spiel
  • Steht sie auf 2: Laden
  • Steht sie auf 3: Ende

Gut. Das hätten wir dann wohl geklärt. Jetzt geht's ans Eventscripting.

Seite 1

Titelmap tut 06.jpg

Da dies eine ganz normale Map ist kommt man noch durch Escape ins Menü. Das schalten wir mal zuerst aus. Dann zeigen wir das Bild an, auf dem Neues Spiel, Laden etc. draufsteht. Das ist bei mir Bildnummer 5.

Dann, Bildnummer 6, der Cursor. Zeigt den Cursor so an, dass er vor Neues Spiel steht. Also bei Show Picture unter Display Position könnt ihr ja festlegen wo das Bild auf dem Bildschirm angezeigt wird. Probiert halt ein wenig herum.

Nun, der Cursor zeigt auf Neues Spiel. Das bedeutet, wir ändern die Variable 26 auf 1. Das wärs für Seite 1.

Seite 2

Titelmap tut 07.jpg
Jetzt auf Seite 2 wechseln, am besten mit der Startbedingung Variable 26 ist größer als 0. Nun wird’s komplizierter.
Eventcode Teil 1
Steht die Variable 26 auf 1 wissen wir: der Cursor zeigt auf Neues Spiel. Das Packen wir in eine Conditional Branch. Wenn man Runter drückt soll der Cursor ja auf Spiel Laden wechseln, wenn man Enter drückt soll ein Neues Spiel beginnen. Wieder 2 Bedingungen, für jeden Tastendruck eine.
Eventcode Teil 2
Was wenn der Cursor auf Spiel Laden steht? Dann ist Variable 26 ja 2. Das packen wir wieder in eine Bedingung.

UND: Wenn man jetzt Hoch drückt, kommt der Cursor wieder auf Neues Spiel. Wenn man Runter drückt kommt er auf Ende. Und drückt man Enter soll ein Spielstand geladen werden.

Das Laden macht ihr über Call Script.

 $scene = Scene_Load.new
ruft den Ladebildschirm auf.
Eventcode Teil 3
So, unsere letzte Bedingung: Was wenn der Cursor auf Ende steht? Wieder Callscript, wieder nach demselben Schema:
$game_system.se_play($data_system.decision_se)
Audio.bgm_fade(800)
Audio.bgs_fade(800)
Audio.me_fade(800)
$scene = nil