Ersteinmal brauchst du eine Variable, die Zählt, wie viele Münzen schon eingesammelt wurden:
Code:
var Munzen = 0;
Dann benötigst du noch eine action für die Münzen, die, wenn der player durch die Münze läuft, die Variable Munze um 1 erhöht und die Münze dann verschwinden lässt:
Code:
action MunzeAct
{
if(my.skill1 == 0){my.skill1 = 5;} //Wenn skill1 im WED nicht gesetzt wurde ist es 5
if(my.skill2 == 0){my.skill2 = 50;} //Wenn skill2 im WED nicht gesetzt wurde ist es 50
my.passable = on; //der Player kann durch mich hindurch laufen
while(!player){wait(1);} //Warte bis es den Player gibt
while(player) //Mache solange der player existiert
{
my.pan += my.skill1*time_step; //drehe mich
if(vec_dist(my.x,player.x) < my.skill2) //Wenn der Player nah genug an mich heran gekommen ist
{
Munze += 1; //erhöhe die Variable Munze um 1
wait(1);
ent_remove(me); //und lösche mich aus dem Level
}
wait(1);
}
}
Hierbei ist skill1 die Drehgeschwindigkeit der Münze und skill2 der Abstand den der Player zur Münze herankommen muss, damit sie aufgesammelt wird.
Dann Brauchst du noch eine action für eine Platte, die bei Kollision mit dem Player, vorausgesetzt es wurden schon genug Münzen gesammelt, das nächste Level lädt.
Code:
function LevelwechselEvent()
{
if(event_type == event_impact) //Wenn es sich um Kollision mit einer Entity handelt
{
if(you == player && Munzen == my.skill1) //Wenn die andere Entity der Player ist und genügend Münzen eingesammelt wurden
{
Munzen = 0; //Nulle die Variable Munzen
level_load(my.string1); //lade das nächste Level
wait(3);
}
}
}
action Levelwechsel
{
my.enable_impact = on; //aktiviere das impact event
my.event = LevelwechselEvent; //Weise die Eventfunktion zu
}
Hierbei muss für skill1 im WED die Anzahl der benötigten Münzen gesetzt sein und für string1 der Name des zuladenen Levels.
Ich habe das nicht getestet, es sollte aber funktionieren.
Slin