从内存创建变量

Create variable from memory

本文关键字:变量 创建 内存      更新时间:2023-10-16

我用的是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。我知道如何获得鼠标输入,但不知道如何绘制对象并将其保持在窗口上。我让它在点击鼠标按钮时绘制对象,但它不会停留。

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

void functions::Map(sf::RectangleShape & wall0){
    wall0.setPosition(0,0);
    wall0.setSize(sf::Vector2f(200,200));
    wall0.setFillColor(sf::Color::Green);
}

Then functions::Draw method:

...
if (playing){
   window.draw( Map(wall00) );
   if (sf::Mouse::isButtonPressed(sf::Mouse::Left)){
   ...