我正在创建一个塔防御游戏模型,在那里敌人试图在他们被摧毁之前穿过屏幕。
指向动态分配的Enemy对象的指针存储在EnemyManager类中的一个向量中,该类控制它们如何产生和释放。当敌人的生命值达到零时,EnemyManager会使用delete
删除它,也会使用指针erase
s来删除它。
我有一个BulletTower对象,用来锁定一个敌人并射击直到它被摧毁,然后再锁定另一个敌人。这需要一个指向Enemy对象的指针,但是如果Enemy死亡并被EnemyManager删除,指针就会悬空。
似乎没有一种方法可以让指针判断被锁定的敌人是否被摧毁。我研究了智能指针,但似乎共享指针不起作用,因为当敌人的健康达到零时,他们会被手动删除。
发布于 2019-05-21 19:04:46
Weak pointer或许可以完成这项工作。
此外,你可以给出一个函数或对象,如果它还活着,它会返回当前锁定的敌人,或者返回一个新的敌人,而不是给出一个指向BulletTower的敌人指针。
https://stackoverflow.com/questions/56236815
复制相似问题