0
私は作成しているゲームにプレーヤーを追加しようとしていますが、このプロセスではmainGameで新しいプレーヤーを作成するときにウィンドウパラメータにエラーが発生します。 cppパラメータタイプがポインタ/参照と一致しません
問題はポインタ/リファレンスの問題ですが、修正方法を把握することができません。
これはエラーメッセージです:私のmainGame.cppは次のようになり互換性のないタイプの 'SF :: RenderWindowの&' と 'SF :: RenderWindowの*'
:
パラメーター型の不一致:
void mainGame::Initialize(sf::RenderWindow* window){ this->player = new Player(20,100, config, window); } void mainGame::Destroy(sf::RenderWindow* window){ delete this->player; }
私mainGame.hファイル:
class mainGame : public tiny_state{ public: void Initialize(sf::RenderWindow* window); void Destroy(sf::RenderWindow* window); protected: Player& player; Config config; sf::RenderWindow window; };
私Plyer.cppファイル:
Player::Player(float x, float y, const Config& config, sf::RenderWindow&) : x(x), y(y), config(config), window(window) { rectangle.setSize(sf::Vector2f(sizeWidth, sizeHeight)); rectangle.setFillColor(sf::Color::White); } void Player::move(float delta){ if (sf::Keyboard::isKeyPressed(sf::Keyboard::Up)) y -= speed * delta; if (sf::Keyboard::isKeyPressed(sf::Keyboard::Down)) y += speed * delta; y = std::max(y, 0.f); y = std::min(y, (float)(config.screenheight - sizeHeight)); } void Player::draw(){ rectangle.setPosition(x, y); window.draw(rectangle); }
私player.hファイル:
struct Player{ Player(float x, float y, const Config& config, sf::RenderWindow& window); void move(float delta); void draw(); const int sizeHeight = 100; const int sizeWidth = 10; const float speed = 5; float x, y; sf::RectangleShape rectangle; const Config& config; sf::RenderWindow& window; };