【发布时间】:2012-11-06 22:19:50
【问题描述】:
我一直在制定正确的语法来将 mouseX 和 mouseY 位置传递给我的班级。
我的尝试是这样的:
// Start the game loop
while (window.isOpen())
{
// Process events
sf::Event event;
while (window.pollEvent(event))
{
// Close window : exit
if (event.type == sf::Event::Closed) {
window.close();
}
}
// Clear screen
window.clear();
// Draw the sprite
window.draw(sprite);
window.draw(lsprite);
if(btn_quit.IsIn(sf::Event::MouseMoveEvent::x,sf::Event::MouseMoveEvent::y){
btn_quit.RenderImg(window,"button_on.png");
} else {
btn_quit.RenderImg(window,"button.png");
}
///rest of the code not relevant to this issue
这是在我的课上:
bool IsIn( int mouseX, int mouseY )
{
if (((mouseX > m_x) && (mouseX < m_x + m_w))
&& ((mouseY > m_y) && (mouseY < m_y + m_h ) ) ) {
return true;
} else {
return false;
}
}
我不断收到输入 x 和 y 的错误,但它是这样说的:
error C2597: illegal reference to non-static member 'sf::Event::MouseMoveEvent::x'
error C2597: illegal reference to non-static member 'sf::Event::MouseMoveEvent::y'
【问题讨论】:
-
嗯...就像错误消息所说的那样。您正在尝试访问 x 和 y 成员,就好像它们是静态的一样,但它们显然不是。
-
看起来你应该打电话给
btn_quit.IsIn(event.x, event.y)?