这个项目里有三个房间。
rm_menu 是第一个房间(在房间管理器中的顺序为第一个)且作为游戏的主标题屏幕。
而房间rm_level_1和rm_level_2是游戏中的两个关卡。

在运行游戏后我们能看到这样一个开始界面。
在一张背景图上,出现了游戏的logo,和两个控制游戏进程的按钮。

这一节,我们来了解怎么制作这个开始界面。(因为资产中已经有了,只是演示过程)
一、创建rm_menu
1、在资产浏览器中创建房间,命名为rm_menu

2、在房间的设置里,设置房间的大小。

3、创建精灵spr_menu_background

4、在房间的Background层中,把精灵设置为房间的背景图片

二、创建按钮
按钮对象的用途是触发指定的功能。这里我们需要用按钮对象控制游戏的开始和退出。
由于原代码是拖拽编程,所以这一步开始建议重写事件代码。
当然能你也可以选择转换代码为gml code,直接修改代码文本。

1、创建按钮精灵spr_button,按钮精灵有三个图片,对应这按钮在交互时的三种形状变化。

注意要把帧数设置为0
2、创建按钮的父对象obj_button_parent,制作父对象可以避免重复编写功能相同的代码。

3、添加创建事件,填入需要在按键上显示的文字

4、添加鼠标交互事件,让鼠标在不同状态下显示不同的精灵图片

//左键按下事件
image_index = 2;
//左键放开事件
image_index = 1;
//鼠标移入事件
image_index = 1;
//鼠标移出事件
image_index = 0;
5、添加声音资产snd_button,让左键按下时发出声音

6、修改左键按下事件,让声音能被触发

//左键按下事件
audio_play_sound(snd_button, 0, 0, 1.0, undefined, 1.0);
image_index = 2;
7、添加绘制事件,让按钮对象能显示存储的文字。

三、开始和结束按钮
1、创建两个空白对象obj_play_button和obj_quit_button

2、给它们添加父对象

3、给它们绑定精灵spr_button

4、修改创建事件,让它们继承父对象的创建事件。并写入新代码,让按钮显示自己的功能。



5、修改obj_play_button的左键放开事件,让游戏能进入下一个房间rm_level_1。

5、修改obj_quit_button的左键放开事件,让游戏进程结束。

四、菜单管理器
1、添加声音资产snd_music_menu,作为背景音乐。
2、创建obj_menu_manager,管理开始界面的功能。

3、添加创建代码,控制菜单界面的背景音乐播放。

4、放置对象,将管理器放置在rm_menu的实例层中。

五、菜单序列
1、在rm_menu的层管理器中,创建序列层

2、创建spr_logo_white和spr_logo,用于显示游戏logo。

3、创建序列seq_menu,在序列中放置游戏按键,声音和logo。
让这些资产在指定的时间点出现或消失。

4、把seq_menu放置在序列层里。

总结:这样我们就实现了开始菜单的创建工作。
