注册 登录
编程论坛 C++教室

一个打地鼠小游戏部分代码,不知道为什么只能在打第一下时播放声音,求解答

anhaoAH 发布于 2020-06-23 18:55, 1658 次点击
while (1)
    {
        msg = GetMouseMsg();
        cz.x = msg.x - 15;
        cz.y = msg.y - 15;
        
        if (msg.mkLButton == true)
        {
            cz.down = true;
            
            if (cz.hit())
            {
                count++;//加分
                mciSendString("open y.mp3.mp3", 0, 0, 0);//播放音效
                mciSendString("play y.mp3.mp3", 0, 0, 0);
                ds[m].isLive = false;//打中了,打死地鼠
               
            }
            
        }
        else
            cz.down = false;
            printf("%d,%d\n", msg.x, msg.y);
            
    }
想要做到每次打击击中后都有音效反馈(播放y.mp3),请大佬指点

[此贴子已经被作者于2020-6-24 07:25编辑过]

1 回复
#2
牧人马2020-06-24 10:43
抱歉没有安装相关头文件,C/C++没有接触过多媒体,网上查了一下关于mciSendString函数的,是不是没有停止播放stop和关闭文件close的操作:https://baike.baidu.com/item/mciSendString/2905255?fr=aladdin#3
可以在 if (cz.hit())里加一些输出看看哪里出错了
1