【发布时间】:2014-10-24 20:05:01
【问题描述】:
我想在单击鼠标左键后播放枪声,但我的代码不起作用。(运行时没有错误,但没有播放声音)
如果我删除“if 条件”并运行游戏,一旦游戏运行,第一件事就是枪声。
但是,如果我使用“if 条件”,即使我单击鼠标左键,它也不再起作用。我需要帮助来解决这个问题。
class Gun
{
Texture2D gun;
Vector2 position;
SoundEffect soundEffect;
public Gun(ContentManager Content)
{
gun = Content.Load<Texture2D>("Gun");
position = new Vector2(10, 10);
MouseState mouse = Mouse.GetState();
if (mouse.LeftButton == ButtonState.Pressed)
{
soundEffect = Content.Load<SoundEffect>("gunshot");
soundEffect.Play();
}
}
【问题讨论】:
-
在构造函数中这样做有意义吗?这不是你在更新期间做的事情吗?
-
好吧,你只是在constructor中检查音效,你需要在更新循环中检查鼠标状态,以便if语句执行多次。
-
谢谢,是的,我将 if 语句放在主类的更新循环中是有道理的。现在它按预期工作了。