在游戏制作中,通常都在启动游戏前,有一个菜单,供用户进行各种关于游戏的设置,比如关数,声音,角色等。本文介绍如何用Android制作一个效果不错的游戏界面启动菜单,并且指导你使用Android中的SharedPreferences去实现保存游戏设置的功能。

一 效果图

我们先来看下实现后的效果,如下图所示:

Android中如何制作游戏的启动菜单_第1张图片

可以看到,该界面中,使用了有特色的字体和背景布局图,当用户在每个选项上点选时,会发现有不同颜色的效果出现。

而当用户点SETTINGS游戏设置时,则进入如下界面:

Android中如何制作游戏的启动菜单_第2张图片

当我们在以上的设置中选择某项设置,比如选择SOUND OFF,再选BACK退出后,则系统会自动记忆下我们的设置,当再进入菜单进行选择时,同样会显示相同的选项。

二 设计菜单的layout布局文件

首先,我们设计菜单的layout文件,这里我们使用的是相对布局,代码如下:

   
  1. xmlns:android="http://schemas.android.com/apk/res/android"
  2. android:layout_width="fill_parent"
  3. android:layout_height="fill_parent">

   
  1. android:src="@drawable/menuback"
  2. android:layout_width="fill_parent"
  3. android:layout_height="fill_parent" />

   
  1. android:orientation="vertical"
  2. android:layout_margin="10dp"
  3. android:layout_width="fill_parent"
  4. android:layout_height="fill_parent" >

   
  1. android:text="START GAME"
  2. android:layout_gravity="right"
  3. android:id="@+id/start"
  4. style="@style/MenuFont" />
   
  1. android:text="QUICK GAME"
  2. android:id="@+id/quick"
  3. style="@style/MenuFont" />
   
  1. android:text="SETTINGS"
  2. android:id="@+id/settings"
  3. style="@style/MenuFont" />
   
  1. android:text="ABOUT"
  2. android:id="@+id/about"
  3. style="@style/MenuFont" />
   
  1. android:text="EXIT"
  2. android:id="@+id/exit"
  3. style="@style/SystemFont" />

其中,每个选项中,都套用了字体样式。在Android中,可以在style目录下建立styles.xml,定义如下样式:

三 定义字体

这里,我们需要使用自定义的字体。在Android中,自定义字体的方法很简单,只需

要按如下步骤实现:

1 找到所需要的字体

2 将字体放到assets目录下

3 在代码中,创建Typeface类的实例,使用createFromAsset调用字体,

4 通过调用textview控件的setTypeface方法,应用字体

示例代码如下:

   
  1. Typeface tf = Typeface.createFromAsset(getAssets(),"data/fonts/floral.ttf");
  2. TextView tv = (TextView) findViewById(R.id.start);
  3. tv.setTypeface(tf)

四、保存用户的选择设置

为了实现保存用户对游戏的设置,可以使用Android中的SharedPreferences进行保存。SharedPreferences的详细说明在(http://developer.android.com/reference/android/content/SharedPreferences.html)可以找到,它实际上是以键值对的形式,保存了用户的数据,可以保存的类型有int,Boolean,String,float,long等。在实际的代码中,我们必须先读取SharedPreferences

中的数据,如果数据值为空,则对数据进行初始化,如下代码所示:

   
  1. private boolean[] settingsHolder = new boolean[4];
  2. private void getSettings() {
  3. SharedPreferences settings = getSharedPreferences("sampleGameSettings", 0);
  4. settingsHolder[0] = settings.getBoolean("sound", true);
  5. settingsHolder[1] = settings.getBoolean("music", true);
  6. settingsHolder[2] = settings.getBoolean("vibrate", true);
  7. settingsHolder[3] = settings.getBoolean("graphics", true);
  8. }

可以看到,初始时,把四个选择项都设置为true。当用户点各选项时,会把on开关设置为off(或者off设置为on),通过如下代码实现:

   
  1. @Override
  2. public void onClick(View v) {
  3. SharedPreferences settings = getSharedPreferences(MenuActivity.PREFS_NAME, 0);
  4. SharedPreferences.Editor editor = settings.edit();
  5. switch(v.getId()){
  6. case R.id.sound:
  7. editor.putBoolean("sound", !settingsHolder[0]);
  8. break;
  9. case R.id.music:
  10. editor.putBoolean("music", !settingsHolder[1]);
  11. break;
  12. case R.id.vibrate:
  13. editor.putBoolean("vibrate", !settingsHolder[2]);
  14. break;
  15. case R.id.graphics:
  16. editor.putBoolean("graphics", !settingsHolder[3]);
  17. break;
  18. case R.id.back:
  19. finish();
  20. break;
  21. }
  22. editor.commit();
  23. getSettings();
  24. setText();
  25. }

至此,全部代码完成.

更多相关文章

  1. 在英特尔® 凌动™ 处理器上将 OpenGL* 游戏移植到 Android* (第
  2. Android实训案例(八)——单机五子棋游戏,自定义棋盘,线条,棋子,游戏逻
  3. Android旅游APP类项目源代码
  4. android下自定义字体的使用方法
  5. Android碎碎念 -- 性能测试,适用于Android Studio的代码审查和性
  6. Android 图形:绘制渐变色奥运五环图形,游戏文字,验证码,Matrix旋转,缩
  7. 对系统学习与写博客的看法——学完《第一行代码》有感

随机推荐

  1. Android(安卓)透明度对应16进制值
  2. android之【RelativeLayout布局】
  3. Android(安卓)Theme 样式 展示
  4. [转] Android电源管理
  5. Android(安卓)允许权限
  6. 面向UDP的Android——PC双向通信(三):在Andr
  7. Android(安卓)api,Android(安卓)SDK
  8. Uyghur Android
  9. android kernel 初始化 1
  10. 【Android(安卓)UI】色板