Kein Problem!
http://manual.3dgamestudio.net/Dann Strg + F drücken
zum Suchen 'ent_next' eingeben, dann kommst du auf dieses Kapitel:
http://www.conitec.net/beta/aent_next.htmDort findest Du folgendes Code-Beispiel:
function hide_all_ents()
{
you = ent_next(NULL); // retrieve first entity
while (you) // repeat until there are no more entities
{
set(you,INVISIBLE); // make entity invisible
you = ent_next(you); // get 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.
Das ist also _die_ Funktion, um alle Entities im Level durchzugehen. Im angegebenen Beispiel wird jede gefundene auf Unsichtbar gesetzt.
Du kannst durch eine einfache if-Bedingung natürlich bestimmte Objekte (= Entities) überspringen.
z.B.:
if(vec_dist(camera.x, you.x) < 100)set(you,INVISIBLE);
Ist jetzt nur ein Beispiel.
Du könntest z.B. der "Schusskugel" in Zuma einen Pointer geben.
z.B. ENTITY* ent_shot;
und dann den Abstand zwischen ihr und allen anderen Entities abfragen:
if(vec_dist(ent_shot.x, you.x) < 100)set(you,INVISIBLE);
Da Du aber noch Entities im Level haben wirst, die nichts mit der Spielmechanik zu tun haben, musst Du die Entities auch grundsätzlich unterscheiden können.
Dafür richtest Du einen Skill ein, der bei allen Entities für diese Unterscheidung vorgesehen ist.
Sagen wir Du nimmst den ersten Skill, nennst ihn ID, für Identität.
"0" wäre praktischerweise die ID aller Gegenstände, die für die Spielmechanik unwichtig sind, dann muss er ihnen nicht einzeln zugewiesen werden.
"1" könnte die ID für die Kugeln sein.
"2" wäre vielleicht der für die Entities, die die einzelnen Pfadpunkte besetzen usw.
die Skills definierst Du so, damit es im Skript übersichtilich ist:
#define ID skill1
#define _id_ball 1
#define _id_path_point 2
#define _id_goal 3
Dann schreibst Du in der späteren Funktion so etwas:
if(you.ID == _id_ball){"Rück'n'Stück"...}
Wegen meines katastrophalen Gedächtnisses kann ich Dir aber leider nicht sagen, ob die Schreibweise so einwandfrei ist.
Es geht nur darum, Dir eine Vorstellung davon zu geben wie es funktionieren sollte.