【问题标题】:Create variable from memory从内存中创建变量
【发布时间】:2013-03-22 15:55:44
【问题描述】:

我正在使用 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。我知道如何获取鼠标输入,但不知道如何绘制对象并将其保留在窗口上。单击鼠标按钮时,我已将其绘制到绘制对象的位置,但它没有停留。

【问题讨论】:

  • this->wall0??显示Map 类。

标签: c++ sfml


【解决方案1】:

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

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

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

然后函数::绘制方法:

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

【讨论】:

  • 不,那没用,我在 call 和 window.draw 中收到错误太多函数,没有重载函数的实例
  • 是functions::Map一个函数还是类成员?试试函数::Map(wall0) ?
  • 嗯,现在我只是没有重载函数的实例...不要将参数 1 从 'void' 转换为 'const sf::Drawable &'
  • 而不是说“void Map();”你的意思是说“wall0 = Map(wall0);” ?
猜你喜欢
  • 1970-01-01
  • 2019-09-26
  • 1970-01-01
  • 2011-03-31
  • 2012-10-15
  • 2014-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多