【发布时间】:2020-04-15 18:34:07
【问题描述】:
我的类型声明为:
TPlayer = class(TObject)
TBullet = class(TObject)
TEnemy = class(TObject)
和对象:
Player: TPlayer;
PlayerBullets: Array[1..20] of TBullet;
Enemies: Array[1..20] of TEnemy;
EnemyBullets: Array[1..20] of TBullet;
现在我想创建 TBullet 构造函数,它可以处理来自玩家和敌人的信息。简而言之,我希望这个构造函数同时处理 TPlayer 和 TEnemy 对象。
我的想法是:
constructor TBullet.Create(const Source: TObject);
很遗憾,它不起作用。如何做到这一点?
编辑: 我的确切问题是:当我将 TPlayer 或 TEnemy 对象传递给此构造函数时,它看不到这些对象的属性。例如:TPlayer 有 attr xPos。如果我使用 Bullet.Create(Player) 并在 TBullet.Create 中使用 Source.xPos,我会收到错误消息。
【问题讨论】:
-
这在什么意义上不起作用?您可以将任何类的实例传递给
TBullet.Create。如果您需要帮助,您需要付出更多努力来解释您的问题、您想要实现的目标、您尝试了什么以及它是如何失败的。
标签: lazarus freepascal