我创建了两个类:Player,Bullet。两者都继承自相同的SFML类sf::Drawable和sf :: Transformable。
头等舱:
class Player :
public sf::Drawable, sf::Transformable
{
public:
Player();
~Player();
enum Direction {UP, DOWN, LEFT, RIGHT};
void update();
void move(Direction dir);
float getRotation();
sf::Vector2f getPosition();
void shoot();
bool moveStatus;
private:
sf::Sprite sprite;
sf::Texture texture;
float speed;
size_t frame;
sf::Clock animClock;
sf::Clock shootTime;
virtual void draw(sf::RenderTarget &target, sf::RenderStates states) const;
};
第二课:
class Bullet :
public sf::Drawable, sf::Transformable
{
public:
Bullet(float rot, sf::Vector2f pos);
~Bullet();
void update();
float getRotation();
sf::Vector2f getPosition();
void move(float x, float y);
private:
sf::Sprite sprite;
sf::Texture texture;
virtual void draw(sf::RenderTarget &target, sf::RenderStates states) const;
};
我对virtual void draw(sf::RenderTarget &target, sf::RenderStates states) const;
有疑问。在Player类中,它正在工作,但在Bullet类中却没有。
答案 0 :(得分:0)
您的问题是,您错过了draw
课程中Bullet
方法的实际实施。
没有代码,很难说,但你要么完全错过它,要么签名中可能有拼写错误。