Events mit BlitzMax
Übersicht

![]() |
JolinahBetreff: Events mit BlitzMax |
![]() 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 |
![]() 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 |
![]() 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 |
![]() 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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Jo, würd sich bei nem GUI gut eignen ![]() OnClick() OnRender() etc. ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group