![]() |
Mapsystem
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
Ich bin derzeit ein Spiel am programmieren und suche im Moment die beste Möglichkeit meine Levels zu speichern. Das ganze soll eine Mischung von RPG und Adventure werden. Und da gibts dann halt ne Menge Räume und in den Räumen stehen Möbel und Tische, Stühle usw und auf den Tischen liegt vielleicht auch etwas, das man eventuell auch aufheben kann usw... Was vielleicht noch nicht unwichtig wäre: Das komplette Spiel findet Indoor statt. Es wird wahrscheinlich keine Levels draußen geben... Ich hätte da auch noch eine zweite Frage: Wie macht man das mit der Kollision... Also generell ja kein Problem aber wenn ich jetzt ne Wand hab dann soll mein Spieler ja nicht kollidieren wenn er mit den Haaren die Wand berührt (das wäre ja wenn er noch 2 Meter von der Wand entfernt steht) sondern halt wenn er direkt davor steht... Hab euch da mal was in den Anhang gepackt... Wie macht man das am besten? Ich benutze die Andorra2D Engine... Gruß Neutral General |
Re: Mapsystem
Es sind zwar noch nicht ganz 24h rum aber ich bin grad kurz daheim.
Findet sich niemand der mir da ein paar Ratschläge geben könnte ? ;) |
Re: Mapsystem
Nimm doch für die Kollisionsprüfung ein kleines Rechteck (oder einen Kreis) um die Füße deiner Figur und nur die Basisfläche der Wand.
|
Re: Mapsystem
Da du kein Stück Code zeigst kann man da nicht viel zu sagen ...
Zur Kollision: Prüfe nicht auf Top des Figurbildes, sondern auf zB Top - Height + 2 oder so bei der Auwärtsbewegeung oder so öhnlich. Damit sollte das gehen. :gruebel: Zur Speicherung ... wie haste denn dei Spielfeld aufgeteilt? MfG freak |
Re: Mapsystem
So wie es OregonGhost vorschlägt wirds normalerweise gemacht. Man nehme das Shape das gezeigt werden soll und Bildchen (Kreis, Dreiek, Schatten der Figur, etc) mit dessen man die Kollosion berechnet, damits einfach bleibt sollte das Bildchen für die Kollision die gleiche größe wie das Mainshape haben.
Zu der Frage des Speichern: Ganz nach belieben! Du solltest dir Vieleicht erstmal Gedanken über die Datenstruktur machen die du in deinem Programm verwendest. Wie du das ganze dann ablegst ist geschmackssache. Zum Beispiel XML oder über einfache textdaten, CVS Tabellen ... ... Gruß Matashen |
Re: Mapsystem
XML finde ich eigentlich nicht schlecht. Du kannst das ja so aufbauen:
Code:
<map>
<tile id="gras" x="0" y="0" z="-1" w="64" h="64"> <object id="baum" x="5" y="5" z="-1"> <object id="vogelnest" /> </object> </tile> <tile id="weg" x="0" y="0" z="-1" w="64" h="64" /> </map> |
Re: Mapsystem
XML hat meiner Meinung nach viel zu viel Overhead. Ich würde mehrere Layer nehmen: Einen Ground-Layer für den Boden, einen Upper-Layer für Objekte auf dem Boden. Diese Layer speicherst du als array of array of Byte (Word, Cardinal) und assoziierst das sie mit einer Grafiktabelle. Darüber kommen dann nur noch Objekte, die sich bewegen sollen als Klasseninstanzen, die du dann serialisiert speicherst.
|
Re: Mapsystem
Zitat:
Zitat:
Viel wichtiger ist die Struktur die du in deinem Programm einbaust. Das Abspeichern...wie gesagt Geschmackssache. Gruß Matthias |
Re: Mapsystem
... und Performancesache. Eine binäre Datei ist schnell interpretiert, bei XML ist das schwieriger und man schleppt noch den Parser mit.
|
Re: Mapsystem
Ok danke für die Antworten. Naja das Problem ist ja wie ich bemerkt habe als ich nochmal drüber nachgedacht habe die Wand vorne... Wobei ich die eigentlich auch weglassen könnte eventuell... weil da würde diese Kollision mit den Füßen ja wieder nicht funktionieren..
Wie ich die Levels abspeichere muss ich mal sehn... Aber ich glaube ich machs nicht mit XML... Wahrscheinlich wirds wieder binär gespeichert - wie auch immer werd ich noch entscheiden... Gruß Neutral General |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz