簡體   English   中英

由於 Sprite 導致 C++ SFML 出現白盒問題

[英]a white box problem in C++ SFML due to Sprite

您好,我試圖為我的游戲繪制一個簡單的正方形,但它繪制的是一個白色正方形而不是我的圖像。 這是我的代碼...

槳.hpp

class Paddle
{
public:
    Paddle(){}
    Paddle(sf::RectangleShape myPaddle);

    void Draw(sf::RenderWindow& window);
    void setImage();

private:

    sf::Texture m_texBackground;
    sf::Sprite m_imgBackground;
    sf::RectangleShape m_shape;
};

槳.cpp

Paddle::Paddle(sf::RectangleShape myPaddle) :m_shape(myPaddle)
{
    [b][font=times new roman]setImage();[/font][/b]
}
void Paddle::setImage()
{
    if (!m_texBackground.loadFromFile("img/bats/bat_black.png")) {
        std::cout << "bat_black.png didnt open" << std::endl;
    }
    else {
        m_imgBackground.setPosition(m_shape.x, m_shape.y);
        m_imgBackground.setTexture(m_texBackground);

        //Some scale stuffs
    }
}

void Paddle::Draw(sf::RenderWindow& window)
{

    window.draw(m_shape);
    window.draw(m_imgBackground);
}

游戲.hpp

    class Game
    {
    public:
        Game();
        void startGame(); //My main while loop here
                //some other functions...
    private:
        sf::RenderWindow m_window;
        Paddle m_paddle;

    };

游戲.cpp

Game::Game()
{
    sf::RectangleShape myPaddle(sf::Vector2f(100, 20));
    myPaddle.setPosition(sf::Vector2f(m_windowWidth/2.0f, m_windowHeight-4.0f * raketim.getSize().y));
    myPaddle.setFillColor(sf::Color::Green);
    m_paddle =Raket(myPaddle);
    //m_paddle.setImage();
}
void Game::startGame()
{
    while (m_window.isOpen())
    {
    
            //some other while loops event stuffs functions etc here
        m_paddle.Draw(m_window);
        //some other functions here
    }
}

所以我要告訴你我的問題是什么。 當我嘗試從 Game 構造函數內部的 Game.cpp 內部調用“setImage”function 時,一切都很好,它正在工作..我的意思是繪制 Sprite 是的......但是當我嘗試從 Paddle.cpp 內部調用“setImage”時在 Paddle 構造函數內部,它正在繪制一個白色正方形...
實際上,對於這個槳來說,它至少可以繪制。但是我為我的游戲牆添加了許多圖像。 它在大循環內..我不能總是從游戲構造函數中調用它..那么我怎么能從我的基礎 class 調用它呢? 我檢查了白盒問題,但我已經在我的 Paddle.hpp 中定義了我的紋理和我的 Sprite。 我的意思是它不會在小范圍內消失..那么問題是什么? 我是 SFML 的新人。請你幫幫我嗎?

我想我至少解決了這個問題。 問題是無論我做什么我都無法防止某些實例因為結束它們的相關范圍而丟失。 花了一些時間看,因為我沒有做它的基礎 class ..但是我在我的 Game.cpp 中定義了一個槳。 所以問題是一樣的。 他們稱這是一個白色方塊問題..我讓 SFML 的文檔在這里你可以從那里檢查。 我希望它可以幫助你SFML 白方塊問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM