android 小游戏心得,Android--小游戏

功能描述

“猜小球”是一个简单的愉悦身心的小游戏,它的功能结构如图a-1所示。

532142e9f94e0148545c4ecbc0e56dd8.png

构建开发环境

在开发本游戏时,首先需要下载安装Android SDK 4.3,设置系统属性环境变量,启动Eclipse,创建和配置AVD模拟器,创建Android应用程序。

准备资源

在实现本游戏前,首先需要准备游戏中所需的图片资源,包括游戏背景图片、图标、默认显示的杯子、有小球的杯子和没有小球的杯子5张图片,如图a-2所示。把它们放置在项目根目录的res/drawable-mdpi文件夹中。

c48a71a1ac341ca41bbbb558b542ab43.png 

4d009cb0a8b7bea3f251aa1ad01fab59.png 

13b27672feb036705e92392f6730467a.png 

6852bd2da73c3deaad118d3ff72610ff.png          

de8f5ce95aca0b46de757ec741294f71.png

background.png    cup_default.png cup_ok.png   cup_sorry.png       ic_launcher.png

之后系统将自动在gen目录下的com.example_game包中的R.java文件中添加对应的图片和id。打开R.java文件,可以看到下面图片id。

public static final int background=0x7f020000;public static final int cup_default=0x7f020001;public static final int cup_ok=0x7f020002;public static final int cup_sorry=0x7f020003;public static final int ic_launcher=0x7f020004;

业务流程

当玩家开始游戏时,屏幕将显示3个杯子,单击其中的任意一个杯子,程序判断该杯子中是否有小球,并且打开杯子显示结果,有小球显示猜对了,没有则显示猜错了询问是否再玩一次,此时可通过单击“再玩一次”按钮重新开始游戏。具体系统流程如图a-3所示。

ef3fe1bde1eaf2fc68a1d591cb1bd15d.png实现过程

实现游戏规则的代码全部编写在主活动的MainActivity中:

(1)  在主活动MainActivity中,定义一个保存全部图片ID的数组、3个ImageView类型的对象和一个TextView类型的对象。具体代码如下:

//显示结果

privateTextView text;//ImageView组件

privateImageView pic0;privateImageView pic1;privateImageView pic2;//定义一个保存全部图片ID的数组

int[] imageIds = new int[]{R.drawable.cup_ok,

R.drawable.cup_sorry,R.drawable.cup_sorry};

(2)  编写一个无返回值的方法replay(),用于随机指定小球所在的杯子。具体代码如下:

public voidreplay() {for (int i = 0; i < 3; i++) {//将数组元素i保存到临时变量中

int temp =imageIds[i];//生成2以内的随机整数

int index = (int) (Math.random() * 2);//将随机数指定的数组元素的内容赋给数组元素i

imageIds[i] =imageIds[index];//将临时变量的值赋值给随机数组指定的那个数组元素

imageIds[index] =temp;

}

}

(3)  编写Drawable资源对应的XML文件button_state.xml,用于设置当鼠标按下时显示的图片,以及鼠标没有按下时显示的图片。具体代码如下:

//获取ImageView组件

pic0 =(ImageView) findViewById(R.id.pic0);

pic1=(ImageView) findViewById(R.id.pic1);

pic2=(ImageView) findViewById(R.id.pic2);//获取TextView组件

text =(TextView) findViewById(R.id.text);//开局先将杯子顺序打乱

replay();

(4)  为3个显示杯子的ImageView组件添加单击事件监听器,用于将杯子打开,并显示猜猜看的结果。具体代码如下:

//为杯子添加单击事件监听

pic0.setOnClickListener(this);

pic1.setOnClickListener(this);

pic2.setOnClickListener(this);

(5)  编写onClick()方法,用于显示打开的杯子,并显示判断结果。具体代码如下:

public voidonClick(View view) {switch(view.getId()) {//设置已打乱顺序的杯子图片

caseR.id.pic0:

pic0.setImageDrawable(getResources().getDrawable(imageIds[0]));

pic1.setImageDrawable(getResources().getDrawable(imageIds[1]));

pic2.setImageDrawable(getResources().getDrawable(imageIds[2]));//判断是否猜中有小球的杯子

if (imageIds[0] ==R.drawable.cup_ok) {

text.setText("恭喜你,猜对了,祝你幸福!");

}elsetext.setText("很抱歉,猜错了,要不要再试一次?");break;case R.id.pic1:

pic0.setImageDrawable(getResources().getDrawable(imageIds[0]));

pic1.setImageDrawable(getResources().getDrawable(imageIds[1]));

pic2.setImageDrawable(getResources().getDrawable(imageIds[2]));if (imageIds[1] ==R.drawable.cup_ok) {

text.setText("恭喜你,猜对了,祝你幸福!");

}elsetext.setText("很抱歉,猜错了,要不要再试一次?");break;case R.id.pic2:

pic0.setImageDrawable(getResources().getDrawable(imageIds[0]));

pic1.setImageDrawable(getResources().getDrawable(imageIds[1]));

pic2.setImageDrawable(getResources().getDrawable(imageIds[2]));if (imageIds[2] ==R.drawable.cup_ok) {

text.setText("恭喜你,猜对了,祝你幸福!");

}elsetext.setText("很抱歉,猜错了,要不要再试一次?");break;caseR.id.butplay:

replay();default:break;

}

}

(6)  获取“再玩一次”按钮,并为该按钮添加单击事件监听器。在其单击事件中,将标题和3个ImageView的图像恢复为默认值。具体代码如下:

//获取“再玩一次”按钮

Button butplay =(Button) findViewById(R.id.butplay);//为“再玩一次”按钮添加事件监听器

butplay.setOnClickListener(this);public voidreplay() {//点击再玩一次,恢复原有标题和杯子图片

text.setText(R.string.cup);

pic0.setImageDrawable(getResources().getDrawable(R.drawable.cup_default));

pic1.setImageDrawable(getResources().getDrawable(R.drawable.cup_default));

pic2.setImageDrawable(getResources().getDrawable(R.drawable.cup_default));

(7)  在AndroidManifest.xml中设置activity让游戏横屏显示。具体代码如下:

android:screenOrientation="landscape"

运行调试

项目开发完成后,就可以在模拟器中运行该项目了。成功运行后将显示如图a-4游戏主界面。单击其中的任意一个杯子,将打开杯子显示里面是否有小球,根据单击的杯子里面是否有小球显示对应的结果。

f92e7879b04f3f7e7dc66385c7f22981.png

图a-4

例如单击中间的杯子,如果小球在这个杯子里,将显示如图a-5所示的运行结果;否则,将显示如图a-6所示的效果。单击“再玩一次”按钮,重新开始游戏。

85da8866c5f163294bcdca18d7535494.png            

0be3c1fa92d0c638ed85cc5b497de170.png

图a-5                                 图a-6

参考文献

[1]李文琴,李翠霞编著.Android开发与实践.2014.8.

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值