Game Maker:移动到下一个房间时 Studio Sound 无法播放?

Game Maker: Studio Sound wont play when moving to next room?

我正在 Game Maker Studio 中制作一个小游戏。 我有一段代码可以让玩家在触摸 obj_star 时移动到下一个房间:这有效。 我有另一行试图在触摸星星时播放 sound_collect,但游戏只是移动到下一个房间而没有播放声音。 我的代码如下:

//Get the player's input
key_right = keyboard_check(vk_right);
key_left = -keyboard_check(vk_left);
key_jump = keyboard_check_pressed(vk_space);

//React to inputs
move = key_left + key_right;
hsp = move * movespeed;
if (vsp < 10) vsp += grav;

if (place_meeting(x,y+1,obj_wall))
{
vsp = key_jump * -jumpspeed
}
//Horizontal Collision
if (place_meeting(x+hsp,y,obj_wall))
{
while(!place_meeting(x+sign(hsp),y,obj_wall))
{
    x += sign(hsp);
}
hsp = 0;
}
x += hsp;

//Vertical Collision
if (place_meeting(x,y+vsp,obj_wall))
{
while(!place_meeting(x,y+sign(vsp),obj_wall))
{
    y += sign(vsp);
}
vsp = 0;
}
y += vsp;

//Sounds
if (place_meeting(x+hsp,y,obj_star))
{
sound_play(sound_collect)
};

首先,您需要使用新的音频引擎和功能audio_...。所有功能 sound_... 都是旧功能,不适用于新的音频引擎。

第二个,我不确定

if (place_meeting(x+hsp,y,obj_star))
{
    // play
}

是正确的方法。例如,如果您在触摸后销毁 obj_star,那么您可以在 obj_star.

Destroy 事件中播放声音

我为五月游戏做的是添加一个主菜单。当玩家单击菜单选项时,将播放所需的音乐。然后当加载需要不同音乐的新房间时,您可以使用 audio_stop_all(); 然后使用 audio_play_sound("sound_Song, 10, false); 播放任何您想要的声音 希望这对您有所帮助!

以防万一,请检查您在代码的另一部分中使用的任何 audio_sound_gain()。似乎当您淡入音效或音乐时,它会保持淡入淡出或静音状态,直到您将其淡出以取消静音。我认为淡入淡出直接应用于您正在使用的声音资产。