Woher weiß die Engine was sie da machen soll?

Posted By: Robso661

Woher weiß die Engine was sie da machen soll? - 01/31/10 11:36

Hey, ich habe mal eine Frage zu einem Online-Workshop. Meine Frage bezieht sich auf dieses Script hier: Woher weiß die Engine, dass sie in dem Level die Zauberer aufleuchten lassen soll? Also in dem Level gibt es ein Haus davor sind 2 Zauberer und wenn man die mit der Maus berührt, leuten sie. Und wie weiß die Engine jetzt, dass es die Zaubere sind die sie aufleuchten lassen soll?


function highlight_event()
{
if (event_type == EVENT_TOUCH) // the wizard was touched with the mouse?
{
my.ambient = 100; // the make it look bright
my.lightrange = 100; // and generate light on a radius of 200 quants!
}
else // the wizard isn't touched anymore
{
if (event_type == EVENT_RELEASE) // the mouse was moved away from it?
{
my.ambient = 0; // then restore its initial ambient value (zero)
my.lightrange = 0; // and stop it from generating light around it
}
}
}

action wizard_lights() // this action is attached to both wizards
{
// make the wizard models sensitive to mouse touching and releasing
my.emask = ENABLE_TOUCH | ENABLE_RELEASE;
// run function highlight_event the wizards are touched or released
my.event = highlight_event;
}
Posted By: Robso661

Re: Woher weiß die Engine was sie da machen soll? - 01/31/10 12:55

Kann mir wirklich keiner helfen?
Posted By: Widi

Re: Woher weiß die Engine was sie da machen soll? - 01/31/10 13:25

Ist ja alles im Code beschrieben. Was genau verstehst du nicht?

Wenn der Mauszeiger einen Zauberer berührt, wird der event ausgeführt, wobei der me/my Pointer auf den Zauberer zeigt, der berührt wird. Es gibt auch noch einen you - Pointer, der zum Beispiel für Kollisionen gebraucht wird und auf die Entity zeigt, mit der man kollidiert ist.
Posted By: Robso661

Re: Woher weiß die Engine was sie da machen soll? - 01/31/10 13:42

Danke für die Antwort.
Posted By: Widi

Re: Woher weiß die Engine was sie da machen soll? - 01/31/10 13:47

Ja ja, diese verflixten Pointer, da hatte ich am Anfang auch meine Mühe. Die sind aber total wichtig hier in 3dgs, ohne die geht garnix. Wünsche dir noch viel Spass beim Workshop...
Posted By: Fab4

Re: Woher weiß die Engine was sie da machen soll? - 02/02/10 12:11

das mit den pointern ist wirklich so ne sache, muss dort nach langen pausen auch immer wieder mit herum probieren. glaube aber eher dass du hier das gleiche problem wie ich damals mit den actions hast.
die actions geben verhaltensweisen usw vor. wenn du mehrere objekte einer action zuweist, verhalten sich die objekte dennoh nicht gleich. klingt in erster linie blöd sagt aber folgendes aus: jede figur die du über actions steuerst werden nur nach dem gleichen verhaltensmuster von der engine verarbeitet, wenn dort bedingungen vorhanden sind (wie hier der mauscurser über dem objekt) wird das ganz nur ausgeführt wenn der mauscurser auch tatsächlich über dem einzelnen objekt ist.

das ganze ist mir extrem aufgefallen, als ich mal versucht habe die steuerung eines charakters mit zweiübereinander liegenden objekten gleichwertig auszuführen. beide objekte hatten eine verzögerung, die dann nur durch externe steuerung von variabeln (ausserhalb der action) verhindert werden konnte.
ist also die definition für die komplette action in der hauptfunktion zu 100% geregelt und ist an keine bedingungen mehr geknüpft sollten auch alle objekte gleich funktionieren.

nun abern och mal zum thema. der my-pointer steht in der action eigentlich immer separat für das objekt, dem die action zugewiesen wurde. ist alles in allem nur eine vereinfachung, dass du nicht für jedes objekt eien action schreiben musst, obwohl sie vollkommen gleich funktionieren (sonst müsstest du imerm den genauen objekt-pointer benutzen)
Posted By: Robso661

Re: Woher weiß die Engine was sie da machen soll? - 02/02/10 12:54

danke noch einmal fab4 für diese ausführliche Antwort
© 2024 lite-C Forums