benötigt gm6.x reg
Dieser script speichert rooms, die in einer gm6 erstellt wurden in einer datei ab.
danach werden die rooms anhand der Daten in einem anderen Spiel rekonstruiert.
Das ist ganz gut für Leute, die gerne alles extern haben wollen und ermöglicht ein leichtes editieren der levels, ohne die exe neu kompilieren zu müssen.
DOWNLOAD ~100 kb oder so
enthalten:
-level gm6
-pacman gm6 die die levels lädt
-der exportierte script.
so funktioniert's:
Alles anzeigen
Dieser script speichert rooms, die in einer gm6 erstellt wurden in einer datei ab.
danach werden die rooms anhand der Daten in einem anderen Spiel rekonstruiert.
Das ist ganz gut für Leute, die gerne alles extern haben wollen und ermöglicht ein leichtes editieren der levels, ohne die exe neu kompilieren zu müssen.
DOWNLOAD ~100 kb oder so
enthalten:
-level gm6
-pacman gm6 die die levels lädt
-der exportierte script.
so funktioniert's:
Quellcode
- [b]SPEICHERN[/b]
- in der levelmapdatei legt ihr ein paar Dummyobjekte an und platziert diese ganz normal mit dem room editor im room.
- Tiles und hintergründe könnt ihr auch platzieren.
- Dann führt ihr im room creation event für jedes dummy objekt, das ihr speichern wollt einmal
- scr_assign_object_write(dummy_object,nummer);
- aus wobei dummy_object mit dem namen des objektes ersetzt wird.
- Nummer ist irgend eine nummer. Nehmt aber für alle objekte unterschiedliche nummern.
- Das selbe tun wir nun auch mittels
- scr_assign_background_write(dummy_background,nummer);
- den Hintergründen an, die gespeichert werden sollen.
- nachdem wir allen hintergründen und objekten nummern zugewiesen haben, führen wir
- scr_start_save(dateiname);
- aus, das das speichern initialisiert.
- Gebt für dateiname den pfad zu irgend einer datei an
- (optimalerweise wäre das im selben ordner wie das spiel)
- an, und alle daten werden da hin geschaufelt.
- dann führen wir
- scr_save_newroom();
- aus.
- danach kommt
- scr_save_objects(nummer);
- das speichert alle objekte mit der ganz am anfang zugewiesenen nummer in der datei ab.
- Wenn ihr hintergründe verwendet, dann speichert diese mit
- scr_save_background(hintergrundnummer);
- ab.
- verwendet ihr tiles, könnt ihr diese mit
- scr_save_tiles(rasterweite,rasterhöhe,tilelayertiefe)
- abspeichern.
- Wichtig dabei ist, das ihr tiles mit einem festen raster (z.b. 32x32) benutzt.
- dann wechseln wir zum nächsten raum. (room_goto_next)
- dort kommt ebenfalls in das create event:
- scr_save_newroom();
- scr_save_objects(nummer);
- scr_save_background(hintergrundnummer);
- scr_save_tiles(rasterweite,rasterhöhe,tilelayertiefe)
- dies wiederholen wir, bis wir beim letzten room angelangt sind.
- auch dort wird alles gespeichert nur wird danach mittels
- scr_end_save();
- der speichervorgang (und auch das 'spiel') beendet.
- [b]LADEN[/b]
- zuerst erstellen wir ein objekt.
- das ist nötig, da sonst kein Ladebalken gezeichnet wird.
- Im create event des objektes wird alarm[0]=1 gesetzt und im alarm0 event tun wir folgendes:
- Wir benutzen
- scr_assign_object_read(objekt,nummer)
- scr_assign_background_read(hintergrund,nummer)
- für alle zu ladenen objekte.
- benutzt dabei die nummer, die ihr für das jeweilige objekt auch beim speichern verwendet habt.
- dann führt ihr:
- scr_load_levels(datei);
- aus.
- Wenn die datei nicht existiert, gibt dieser Script wert false zurück und zeigt eine meldung, beendet in dem fall das Spiel.
- diese funktion erstellt anhand der daten in der datei räume.
- diese räume werden im array
- global.level[nummer]
- gespeichert.
- dar erste level ist mit global.level[0] zu erreichen.
- Die maximalanzahl der rooms wird in global.levelnumber gespeichert.
- wir fügen noch
- room_goto(global.level[0])
- ein, damit sofort nach dem Laden das erste level aufgerufen wird und wir nicht um laderoom stecken bleiben.
- kreiert jetzt einen einzigen 100x20 grossen room (so gross ist der Ladebalken) und platziert dort das eben erstellte objekt irgendwo hin.
- Fertig.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Verwurster ()