Events mit BlitzMax

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

Jolinah

Betreff: Events mit BlitzMax

BeitragDo, März 24, 2005 16:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

da BlitzMax Functionpointers unterstützt kann man damit was nettes machen, Events in Types Smile

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

BeitragDo, März 24, 2005 16:46
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragDo, März 24, 2005 16:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Stimmt, sorry wenn ich es falsch benannt habe Wink

Ist halt so Gewohnheit und Mark nennt sie auch Functionpointer soviel ich weiss. Aber eigentlich ist es auch gut so dass sie typesafe sind Smile

regaa

BeitragDo, März 24, 2005 23:28
Antworten mit Zitat
Benutzer-Profile anzeigen
hmmm...coole Sache. Wieso erfahre ich das nur jetzt Crying or Very sad .
UltraMixer Professional 3 - Download
QB,HTML,CSS,JS,PHP,SQL,>>B2D,B3D,BP,BlitzMax,C,C++,Java,C#,VB6 , C#, VB.Net

Jolinah

BeitragSa, März 26, 2005 11:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Jo, würd sich bei nem GUI gut eignen Very Happy

OnClick()
OnRender() etc. Wink

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group