我正在使用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。我知道如何获取鼠标输入但不知道如何绘制对象并将其保留在窗口上。
,点击鼠标按钮时,我已将它绘制到绘制对象的位置。答案 0 :(得分: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)){
...