将对象推回std :: vector

时间:2018-12-17 16:25:33

标签: c++ oop object vector sfml

我正在用C ++编写项目符号系统。我对c ++不太了解。

对于我的子弹系统,我想要一个子弹管理器类,该类可以更新并绘制所有子弹。我也有一个叫做“子弹”的类,很子弹。

class Bullet {
public:
    Bullet();

    sf::Sprite bullet_sprite;
    sf::Vector2f movement_vector;
    sf::Vector2f destination_pos;
    float speed;
};


class BulletManager : public Entity {
public:
    virtual void draw(sf::RenderWindow& window);
    virtual void update(sf::RenderWindow& window);

    std::vector<Bullet*> bullets;

};

我将每个项目符号存储在一个向量中。在绘制和更新功能中,我遍历此向量并对每个项目符号执行必要的操作。

我在将 player 类的向量添加子弹时遇到困难。我正在尝试像这样传递对新项目符号的引用:

bullet_manager.bullets.push_back(&bullet);

但是,子弹向量的大小始终保持为零。

如何从播放器类向此向量添加新的项目符号对象?

也-在播放器类中有此功能,因为它是“处理播放器输入”功能的一部分。

1 个答案:

答案 0 :(得分:-1)

尝试使用std :: move()

检查此链接!

https://es.cppreference.com/w/cpp/utility/move

,然后从链接中查看以下示例:

paymentQueue:updatedTransactions