Events mit BlitzMax
Übersicht BlitzMax, BlitzMax NG Allgemein
JolinahBetreff: Events mit BlitzMax |
Do, März 24, 2005 16:42 Antworten mit Zitat |
|
---|---|---|
Hi,
da BlitzMax Functionpointers unterstützt kann man damit was nettes machen, Events in Types Ok wissen sicher einige schon, andere vielleicht noch nicht. Deshalb hier mal ein Beispiel: Code: [AUSKLAPPEN] Type TTest 'Function Pointer (Event) Field OnPlayerRespawn(player:String) Field health:Byte Field name:String Method Update() If health <= 0 then Respawn() End Method Method Respawn() health = 100 OnPlayerRespawn(name) End Method End Type 'Diese Funktion wird aufgerufen wenn der Event ausgelöst wird 'und kann natürlich überall stehen Function respawn_handler(name:String) Print "Player Respawn" End Function Local t:TTest = new TTest t.OnPlayerRespawn = respawn_handler t.health = 100 t.Update() 'passiert nix, health ist nicht 0 t.health = 0 t.Update() ' health ist 0, die interne Respawn Funktion wird aufgerufen ' Die Respawn Funktion löst zusätzlich den Event aus. Als Beispiel lassen sich so Module machen die der Benutzer erweitern kann ohne dass er den Sourcecode davon haben muss, weil man ja in den Eventhandlern selber bestimmen kann was geschieht. |
||
Dreamora |
Do, März 24, 2005 16:46 Antworten mit Zitat |
|
---|---|---|
Man darf dabei nur nie vergessen, das es nicht wirklich Funktionspointer sind, sondern "Agents" oder typesafe Funktionsereferenzen.
Sprich die Deklaration darf sich nicht ändern, sonst wird es nicht akzeptiert. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Jolinah |
Do, März 24, 2005 16:55 Antworten mit Zitat |
|
---|---|---|
Stimmt, sorry wenn ich es falsch benannt habe
Ist halt so Gewohnheit und Mark nennt sie auch Functionpointer soviel ich weiss. Aber eigentlich ist es auch gut so dass sie typesafe sind |
||
regaa |
Do, März 24, 2005 23:28 Antworten mit Zitat |
|
---|---|---|
hmmm...coole Sache. Wieso erfahre ich das nur jetzt . | ||
UltraMixer Professional 3 - Download
QB,HTML,CSS,JS,PHP,SQL,>>B2D,B3D,BP,BlitzMax,C,C++,Java,C#,VB6 , C#, VB.Net |
Jolinah |
Sa, März 26, 2005 11:27 Antworten mit Zitat |
|
---|---|---|
Jo, würd sich bei nem GUI gut eignen
OnClick() OnRender() etc. |
||
Übersicht BlitzMax, BlitzMax NG Allgemein
Powered by phpBB © 2001 - 2006, phpBB Group