尝试使用switch语句来移动与鼠标位置相关的图像c ++ SFML
Posted
技术标签:
【中文标题】尝试使用switch语句来移动与鼠标位置相关的图像c ++ SFML【英文标题】:trying to use switch statement to move an image in relation to mouse position c++ SFML 【发布时间】:2014-03-13 13:37:44 【问题描述】:由于我是一般编码的新手,但我确信我的想法只是朝着错误的方向前进...... 我正在尝试让精灵在左键单击时追逐鼠标。我曾尝试使用 else if 语句,但即使多次单击也只有前 2 个语句会运行。 我想能够说如果 mouseposition.x > playerposition.x 然后将 playerimage 向右移动,那么一个用于其他方向。 因为我使用的是 sfml,所以我使用下面的方法来获取两者的位置。
sf::Vector2i mousePosition = sf::Mouse::getPosition(window);
sf::Vector2f playerPosition = playerImage.getPosition();
我希望使用下面的 switch 语句,但我不知道如何创建参数并将案例与该参数进行比较。
if(sf::Mouse::isButtonPressed(sf::Mouse::Left))
switch()
case 1:
playerImage.move(0.02, 0);
case 2:
playerImage.move(-0.02, 0);
case 3:
playerImage.move(0, -0.02);
case 4:
playerImage.move(0, 0.02);
【问题讨论】:
我不明白..你在找寻路吗? 这是在碰撞之前我只希望图像在单击左键时转到鼠标位置。只画了一个窗口和一个播放器图标 然后我会去 if (mousePosition.x 得到它thanx Raakz,我之前犯了使用else语句的错误,而不是我使用if语句列表现在只要左键单击,即使在四处移动时,图标也会追逐鼠标。感谢您走上正确的思路。我会粘贴代码,但我不允许使用应答按钮 【参考方案1】:也许是这样的?
if (sf::Mouse::isButtonPressed(sf::Mouse::Left))
sf::Vector2f offset;
if (mousePosition.x > playerPosition.x)
offset.x = 0.02f;
else if (mousePosition.x < playerPosition.x)
offset.x = -0.02f;
if (mousePosition.y > playerPosition.y)
offset.y = 0.02f;
else if (mousePosition.y < playerPosition.y)
offset.y = -0.02f;
playerImage.move(offset);
【讨论】:
以上是关于尝试使用switch语句来移动与鼠标位置相关的图像c ++ SFML的主要内容,如果未能解决你的问题,请参考以下文章