0

我正在使用 sfml。我需要编写一个函数来创建一个类型 sf::RectangleShape 并返回一个带有当前鼠标位置的新 sf::RectangleShape 并在我使用 window.draw() 后停留在那里现在我的代码是:

sf::RectangleShape functions::Map(sf::RectangleShape wall0){

    wall0.setPosition(0,0);
    wall0.setSize(sf::Vector2f(200,200));
    wall0.setFillColor(sf::Color::Green);
    wall0 = this->wall0;
    return wall0;
}

void functions::Draw(){

    window.clear();
    window.draw(logo);
    if (menu){

        window.draw(menuStart);
            window.draw(menuOptions);
            window.draw(menuExit);
    }
    if (playing){
       void Map();
       window.draw(wall0);
       if (sf::Mouse::isButtonPressed(sf::Mouse::Left)){



    }



}

当按下鼠标左键时,我想用新的鼠标位置返回 wall0。我知道如何获取鼠标输入,但不知道如何绘制对象并将其保留在窗口上。在单击鼠标按钮时,我已经将它绘制到了绘制对象的位置,但它并没有停留。

4

1 回答 1

0

我不熟悉 sfml - 但简要查看您的代码,这是我认为您想要做的:

void functions::Map(sf::RectangleShape & wall0){

    wall0.setPosition(0,0);
    wall0.setSize(sf::Vector2f(200,200));
    wall0.setFillColor(sf::Color::Green);
}

然后函数::Draw 方法:

...
if (playing){
   window.draw( Map(wall00) );
   if (sf::Mouse::isButtonPressed(sf::Mouse::Left)){
   ...
于 2013-03-22T17:23:20.080 回答