android单机菜单进入功能,Android中如何制作游戏的启动菜单

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

一 效果图

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

891f457e194b410979b82afed2771bcc.png

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

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

e5d5dc4afced979346bf40e6e4363b50.png

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

二 设计菜单的layout布局文件

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

xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent">

android:src="@drawable/menuback"

android:layout_width="fill_parent"

android:layout_height="fill_parent"/>

android:orientation="vertical"

android:layout_margin="10dp"

android:layout_width="fill_parent"

android:layout_height="fill_parent">

android:text="START GAME"

android:layout_gravity="right"

android:id="@+id/start"

style="@style/MenuFont"/>

android:text="QUICK GAME"

android:id="@+id/quick"

style="@style/MenuFont"/>

android:text="SETTINGS"

android:id="@+id/settings"

style="@style/MenuFont"/>

android:text="ABOUT"

android:id="@+id/about"

style="@style/MenuFont"/>

android:text="EXIT"

android:id="@+id/exit"

style="@style/SystemFont"/>

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

25sp

#FFFFFF00

bold

true

1

right|center

fill_parent

wrap_content

25sp

#FFFF6a17

bold

true

1

right|center

fill_parent

wrap_content

三 定义字体

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

要按如下步骤实现:

1 找到所需要的字体

2 将字体放到assets目录下

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

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

示例代码如下:

Typefacetf=Typeface.createFromAsset(getAssets(),"data/fonts/floral.ttf");

TextView tv= (TextView) findViewById(R.id.start);

tv.setTypeface(tf)

四、保存用户的选择设置

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

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

private boolean[]settingsHolder=newboolean[4];

private void getSettings() {

SharedPreferences settings=getSharedPreferences("sampleGameSettings", 0);

settingsHolder[0] = settings.getBoolean("sound", true);

settingsHolder[1] = settings.getBoolean("music", true);

settingsHolder[2] = settings.getBoolean("vibrate", true);

settingsHolder[3] = settings.getBoolean("graphics", true);

}

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

@Override

public void onClick(View v) {

SharedPreferences settings=getSharedPreferences(MenuActivity.PREFS_NAME, 0);

SharedPreferences.Editor editor=settings.edit();

switch(v.getId()){

case R.id.sound:

editor.putBoolean("sound", !settingsHolder[0]);

break;

case R.id.music:

editor.putBoolean("music", !settingsHolder[1]);

break;

case R.id.vibrate:

editor.putBoolean("vibrate", !settingsHolder[2]);

break;

case R.id.graphics:

editor.putBoolean("graphics", !settingsHolder[3]);

break;

case R.id.back:

finish();

break;

}

editor.commit();

getSettings();

setText();

}

至此,全部代码完成.

【责任编辑:立方 TEL:(010)68476606】

点赞 0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值