0 registered members (),
1,438
guests, and 5
spiders. |
Key:
Admin,
Global Mod,
Mod
|
|
|
Ansätze für Mini-Golf Editor
#89510
09/11/06 16:52
09/11/06 16:52
|
Joined: Mar 2004
Posts: 286 Maintal, Deutschland
TheTommynator
OP
Member
|
OP
Member
Joined: Mar 2004
Posts: 286
Maintal, Deutschland
|
Hallo, Ich bin im Moment an der Planung für ein Mini-Golf-Spiel. Da wollte ich auch einen Editor einbauen, mit dem der Spieler eigene Bahnen einbauen kann. Allerdings habe ich keine wirkliche Idee, wie ich das im Hintergrund umsetzen kann. Im Vordergrund dachte ich mir, dass man einzelne Models (die Hindernisse) bereitstellt, die der User dann auf einer Grundfläche platzieren kann. Das mit dem Platzieren krieg ich auch noch hin, aber wie speichere ich die Positionen der Models (Drehung, Höhe) und lese sie wieder ein? Ihr braucht keinen vollständigen Code zu posten, aber Idee-Ansätze wären toll Danke
Back @ work with 3DGS.
|
|
|
Re: Ansätze für Mini-Golf Editor
[Re: TheTommynator]
#89512
09/11/06 17:27
09/11/06 17:27
|
Joined: Jul 2002
Posts: 4,436 Germany, Luebeck
Xarthor
Expert
|
Expert
Joined: Jul 2002
Posts: 4,436
Germany, Luebeck
|
du könntest der reihe nach die entity liste ab-arbeiten (ent_next) und jeweils den dateinamen (str_for_entfile) + x,y,z position + scale x,y,z + angle pan,tilt,roll in eine datei schreiben. Beim laden erstellst du halt erst die entity mittels des dateinamen und liest dann die ganzen anderen sachen entsprechend in die parameter der entity die du grade erstellt hast. Code beispiel: Code:
string entity_file; var fhandle;
function save_map() { fhandle = file_open_write("map00.txt"); you = ent_next(null); while(you != null) { str_for_entfile(entity_file,you); file_str_write(fhandle,entity_file); file_var_write(fhandle,you.x); file_var_write(fhandle,you.y); file_var_write(fhandle,you.z); file_var_write(fhandle,you.pan); file_var_write(fhandle,you.tilt); file_var_write(fhandle,you.roll); you = ent_next(you); wait(1); //nicht wirklich nötig } file_close(fhandle); }
Wie das laden aussieht ist -denke ich- klar
|
|
|
Re: Ansätze für Mini-Golf Editor
[Re: Xarthor]
#89513
09/11/06 19:45
09/11/06 19:45
|
Joined: Mar 2004
Posts: 286 Maintal, Deutschland
TheTommynator
OP
Member
|
OP
Member
Joined: Mar 2004
Posts: 286
Maintal, Deutschland
|
Und ent_next() liefert nur die Entitys, die geladen sind? Auf jeden Fall schonmal danke für den tollen Ansatz Thunder
Back @ work with 3DGS.
|
|
|
Re: Ansätze für Mini-Golf Editor
[Re: TheTommynator]
#89514
09/12/06 14:59
09/12/06 14:59
|
Joined: Jul 2002
Posts: 4,436 Germany, Luebeck
Xarthor
Expert
|
Expert
Joined: Jul 2002
Posts: 4,436
Germany, Luebeck
|
Ein Blick ins manual sagt mir dies: Quote:
ent_next (entity); All level entities are sorted into an internal list. This instruction returns a pointer to the first entity in the list when the entity parameter is NULL, and a pointer to the next entity otherwise. When the last entity is given as parameter, the instruction returns NULL. With this instruction something can be done to all entities in a level - or a certain entity can be found. The parameters of all entities can be read, but changing the parameters only has an effect on active entities (with an action attached). A level must be loaded for this instruction to work, so it can be executed one frame after a level_load instruction the earliest.
Ein andere Ansatz wäre: Wenn immer der Spieler im Editor eine Entity setzt, schreibt diese ihr handle in ein array rein und am ende arbeitest du den array ab. Das würde dir als Entwickler auch die Möglichkeit geben ein bestimmtest limit einzubauen, damit der User seine landschaft nicht allzu sehr zu baut
Das Laden aus einer datei bietet auch folgenden vorteil: Es gibt immer eine möglichkeit herauszufinden, wieviel entitys gesetzt wurden. Diese zahl könntest du nun an den anfang der datei schreiben und somit, mit der tatsächlichen anzahl geladener entities einen Ladebalken realisieren. Aber das nur nebenbei
|
|
|
Re: Ansätze für Mini-Golf Editor
[Re: Xarthor]
#89515
09/13/06 12:03
09/13/06 12:03
|
Joined: Mar 2004
Posts: 286 Maintal, Deutschland
TheTommynator
OP
Member
|
OP
Member
Joined: Mar 2004
Posts: 286
Maintal, Deutschland
|
Danke für die tollen Ansätze Nur eine Frage noch: Wie kann ich mit Hilfe von ent_next() bestimmte Entitys "herausfiltern". Z.b. Müssen die Seitenbegrenzungen des Levels (die ja fast immer gleich sind) nicht in die Datei geschrieben werden. Wie kann ich diese herausfiltern?
Back @ work with 3DGS.
|
|
|
Moderated by mk_1, Perro, rayp, Realspawn, Rei_Ayanami, rvL_eXile, Spirit, Superku, Tobias, TSG_Torsten, VeT
|