我正在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)
};
答案 0 :(得分:0)
首先,您需要使用新的音频引擎和功能audio_...
。所有功能sound_...
都是遗留的,不适用于新的音频引擎。
第二,我不确定
if (place_meeting(x+hsp,y,obj_star))
{
// play
}
是正确的方法。例如,如果您在触摸后销毁obj_star
,则可以在Destroy
的{{1}}事件中播放声音。
答案 1 :(得分:0)
我可以为游戏添加主菜单。当玩家点击菜单选项时,播放所需的音乐。然后,当加载需要不同音乐的新房间时,您可以使用audio_stop_all();
,然后使用audio_play_sound("sound_Song, 10, false);
播放您想要的任何声音
希望这有帮助!