Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Quellcode |
|
1 2 3 4 5 6 |
class ControlledByPlayerComponent : Component { Player getOwner() bool isHostile(Player p) bool changeOwner(Player p) bool canBeControlledBy(Player p) } |
Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »Chromanoid« (22.03.2011, 01:13)
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
C#-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
/// <summary> /// Inherit from this interface, if you want to /// handle a Select by a Player /// </summary> public interface ISelectable { void OnSelect(Player sender); } /// <summary> /// General Unit Class /// </summary> public class Unit : ISelectable { public Player myOwner; public Ally myAlly; public Unit(Player owner) { myOwner = owner; myAlly = owner.Ally; } private void DrawHealthBar() { ... } private void Draw() { ... DrawHealthBar(); ... } /// <summary> /// Select Unit /// </summary> /// <param name="sender"></param> public void OnSelect(Player sender) { // Select, if unit is no enemy if (myAlly.isEnemy(sender)) return; } } public class SpecialUnit : Unit { public override void OnSelect(Player sender) { // This Unit will never be selected return; } } |
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »koschka« (22.03.2011, 11:49)
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Mir persönlich gefällt diese Klasse hier nicht, die das Anwählen verarbeitet. Dieses Anwählen würde ich eventuell in ein Interface auslagern und das eigentliche Anwählen erst in der Einheiten-Klasse implementieren. So kann man sehr einfach prüfen, ob ein anwählen akzeptiert wird (abhängig vom Spieler, Allianz, etc.). Spezialisierungen einzelner Einheitenkategorien sind durch ein simples Überschreiben dieser Methode möglich.
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Werbeanzeige