You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

ObjOfCharacter.cs 1.5 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. using Preparation.Interface;
  2. using Preparation.Utility;
  3. using System.Threading;
  4. namespace GameClass.GameObj
  5. {
  6. /// <summary>
  7. /// 所有物,具有主人(Parent)(特定玩家)属性的对象
  8. /// </summary>
  9. public abstract class ObjOfCharacter : Moveable, IObjOfCharacter
  10. {
  11. private ReaderWriterLockSlim objOfCharacterReaderWriterLock = new();
  12. public ReaderWriterLockSlim ObjOfCharacterReaderWriterLock => objOfCharacterReaderWriterLock;
  13. private ICharacter? parent = null; // 主人
  14. public ICharacter? Parent
  15. {
  16. get
  17. {
  18. objOfCharacterReaderWriterLock.EnterReadLock();
  19. try
  20. {
  21. return parent;
  22. }
  23. finally
  24. {
  25. objOfCharacterReaderWriterLock.ExitReadLock();
  26. }
  27. }
  28. set
  29. {
  30. objOfCharacterReaderWriterLock.EnterWriteLock();
  31. try
  32. {
  33. parent = value;
  34. }
  35. finally
  36. {
  37. objOfCharacterReaderWriterLock.ExitWriteLock();
  38. }
  39. }
  40. }
  41. // LHR注:本来考虑在构造函数里设置parent属性,见THUAI4在游戏引擎中才设置该属性,作罢。——2021/9/24
  42. public ObjOfCharacter(XY initPos, int initRadius, GameObjType initType) :
  43. base(initPos, initRadius, initType)
  44. {
  45. }
  46. }
  47. }