Я хочу воспроизводить звук все время, пока окно с картинками движется, используя событие нажатия клавиши. Мой код следующий:
private bool soundPlaying = false;
private SoundPlayer player = new SoundPlayer(@"Sounds/Step.wav");
private void PlaySound(bool start)
{
if (start)
{
if (!soundPlaying)
{
soundPlaying = true;
player.PlayLooping();
}
}
else
{
soundPlaying = false;
player.Stop();
}
}
private void Joc_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.W)
{
PlaySound(true);
}
}
private void Joc_KeyDown(object sender, KeyEventArgs e)
{
Joc joc = new Joc();
if (e.KeyCode == Keys.W)
{
joc.keyPressW(velocity, gameboard, ColonistList, StoneListMain, treeList, treeFHD, treeHD, stoneFHD, stoneHD, stoneLooted, killedMob, Ship, Wolf, Distance, inventoryButton, openInventory, LifeBarStroke, InnerLifeBar, WolfHealthStroke);
PlaySound(false);
}
else if (e.KeyCode == Keys.S) joc.keyPressS(velocity, gameboard, ColonistList, StoneListMain, treeList, smallStoneList, treeFHD, treeHD, stoneFHD, stoneHD, stoneLooted, killedMob, Ship, Wolf, Distance, inventoryButton, openInventory, LifeBarStroke, InnerLifeBar, WolfHealthStroke);
else if (e.KeyCode == Keys.D) joc.keyPressD(velocity, gameboard, ColonistList, StoneListMain, treeList, smallStoneList, treeFHD, treeHD, stoneFHD, stoneHD, stoneLooted, killedMob, Ship, Wolf, Distance, inventoryButton, openInventory, LifeBarStroke, InnerLifeBar, WolfHealthStroke);
else if (e.KeyCode == Keys.A) joc.keyPressA(velocity, gameboard, ColonistList, StoneListMain, treeList, smallStoneList, treeFHD, treeHD, stoneFHD, stoneHD, stoneLooted, killedMob, Ship, Wolf, Distance, inventoryButton, openInventory, LifeBarStroke, InnerLifeBar, WolfHealthStroke);
}
В классе «Jo c» есть функции ходьбы. В этот момент этот код воспроизводит один раз звук, когда я прохожу первый пиксель, и когда я перестал нажимать клавишу, он снова воспроизводит звук. Как я могу решить эту проблему?