我想做的是: 我有一个精灵。而这个精灵有3个纹理。第一个纹理,我们称之为“未访问”,是最初的纹理。现在,当我点击精灵时,它应该将其纹理更改为“clicked”,这意味着点击了精灵。并且这个纹理应该保留,直到我点击屏幕上的其他位置。当我这样做时,纹理应该改为第三个,“访问”。如果我再次点击精灵,它应该将其纹理更改为“点击”......
所以,我应该在这里有一个名为“ClickDetected”的bool函数,它的代码应该这样做:
if (event.type == Event::MouseButtonReleased && event.mouseButton.button == Left)
if (mouse_over_sprite)
return true;
右?好的,那么,我有一个类Node。这个类有一个方法“Clicked”:
bool Clicked {
if (ClickDetected) { return true; }
}
我知道这可能没必要,但现在让它留下来。接下来,在此类的Update()方法中:
if (Clicked) { change_texture_to_"clicked"; if (!visited) visited=true; }
else {
if (!visited) change_texture_to_"not-visited";
if (visited) change_texture_to_"visited";
}
但这不应该如何应用。当我点击精灵纹理变化为“点击”。当我释放鼠标按钮时,“点击”纹理保持...但当我移动时,鼠标纹理变为“已访问”。它应该保持“点击”,直到我点击其他地方。我试着在这里使用while循环,但它没有用。我该怎么办?
答案 0 :(得分:1)
我已将此代码放入Graph类(方法Update())来管理许多节点。我已经改变了一点,现在它工作正常。