Einzelnen Beitrag anzeigen

Igotcha

Registriert seit: 22. Dez 2003
544 Beiträge
 
Delphi 2006 Professional
 
#1

Wie eigene Ereignisse in Klassen?

  Alt 5. Okt 2005, 16:29
Hallo zusammen,

ich möchte ein kleines Spiel schreiben und bin gerade dabei, die entsprechenden Klassen für die einzelnen Einheiten und Individuen zu schreiben (eine Einheit kann mehrere Individuen besitzen). Da ich diese Individuen so "intelligent" wie möglich gestalten will, habe ich mir gedacht, ich lasse sie (die Objekte) u.a. auf Ereignisse reagieren.

Nehmen wir mal an, ein Individuum ist ein Soldat. Dieser soll z.B. innerhalb seiner Einheit laufen können (kein Problem). Wenn jetzt aber Gegner in seiner Reichweite sind, soll er sich anders verhalten, er soll also z.B. auf ein Ereignis "OnEnemyNear" reagieren. Genauso sollen z.B. seine Lebenspunkte reduziert werden, wenn er Schaden erleidet - z.B. mit

Delphi-Quellcode:
procedure OnGetDamage(aEnemy: TUnit, aDmg: Integer).
begin
      Hitpoints:=Hitpoints-aDmg;
      if HitPoints<0 then
         Dead;
      If InCombatRange(aEnemy)=true then
         Attack(aEnemy)
      else
         MoveTo(aEnemy);
end;
Wie setze ich so etwas um, dass diese Events überhaupt stattfinden und dann auch die Objekte auf diese reagieren können?

TUnit könnte z.B. eine procedure "DoDamageToUnit(aUnit, aDmg)" besitzen, wie kann aber die empfangende TUnit dieses Event abfragen?

Es geht also darum, wie ich nicht-Systemnachrichten erstellen und darauf reagieren kann.

Gruß Igotcha
  Mit Zitat antworten Zitat