|
Android连连看
本文将以连连看来介绍有关Android开发的要点:
1.开发单机休闲游戏的基本方法
2.单机游戏的界面分析
3.单机游戏的游戏界面与数据建模
4.开发单机游戏的界面组件
5.初始化单机游戏的状态
6.自定义View开发游戏主界面
7.实现游戏的Activity
8.定义事件监听器实现游戏的人机交互
9.分情况分析游戏的逻辑处理[size=FONT-SIZE: larger,larger]针对不同情况提供实现
本文介绍将会介绍一个非常常见的小游戏:连连看,这个游戏是一个单机的休闲小游戏。连连看的游戏界面上均匀分布上2N个尺寸相同的图片,每张图片在游戏中都会出现偶数次,游戏玩家需要依次找到两张相同图片,而且这两张图片之间只用横线、竖线相连(连线上不能有其他图片),并且连线的条数不超过3条,那么游戏会消除这两个图片。
[size=FONT-SIZE: larger,larger] 对于Android学习者来说,学习开发这个小程序难度适中,而且能很好地培养学习者的学习乐趣。开发者需要从程序员的角度来看待玩家面对的游戏界面,游戏界面上的每个图片在底层只要使用一个数值标识来代表即可,不同的图片使用不同的数值表示,只要代表图片的数值相等,即可判断两张图片相同。
[size=FONT-SIZE: larger,larger]开发连连看游戏除了需要理解游戏界面的数据模型之外,程序开发者还需要判断两个方块是否可以相连,为了判断两个方块是否可以相连,开发者需要对两个方块所处的位置进行分类,然后针对不同的情况采用不同的判断算法进行判断,这需要开发者采用条理化的思维方式进行分析、处理,这也是学习本章需要重点掌握的能力。1.连连看游戏简介
连连看是一款广受欢迎的小游戏,它具有玩法简单、耗时少等特征,尤其适合广大白领女性在办公室里休闲、放松。图18.1显示了连连看的游戏界面:图18.1 连连看游戏界面
从图18.1可以看出,在连连看的游戏界面中,平均分布着2N张图片,每张图片都会出现偶数次,游戏玩家要做的事情就是依次找出两张相同的图片,如果这两张图片之间只用横线、竖线相连(连线上不能有其他图片),并且连线的条数不超过3条,那么游戏会消除这两个图片;当整个游戏中所有图片都被消除时,游戏结束。
图18.2所示左上角的两个方块之间的连接线只有3条,这两个方块将会被消除:图18.2 可以消除的方块
连连看可做成单机小游戏,让脱机用户在适当的时候来独自放松;也可以做成网络对战游戏——让两个用户在进行比赛:谁能最先消除游戏中的所有方块,也就是谁先胜利。
连连看的游戏界面比较简单,而且游戏的实现逻辑也不会太复杂,正适合Android初学者作为编程进阶的练习项目。2 开发游戏界面
连连看的游戏界面十分简单,大致上可分为两个区域:
游戏主界面区。
控制按钮与数据显示区。
2.1 开发界面布局
本程序将会使用一个RelativeLayout作为整体的界面布局元素,界面布局的上面是一个自定义组件,下面是一个水平排列的LinearLayout。
程序清单:codes18Link eslayoutmain.xml
<?xml version="1.0" encoding="utf-8"?> |
xmlns:android="http://schemas.android.com/apk/res/android" |
android:layout_width="fill_parent" |
android:layout_height="fill_parent" |
android:background="@drawable/room"> |
<!-- 游戏主界面的自定义组件 --> |
<org.crazyit.link.view.GameView |
android:id="@+id/gameView" |
android:layout_width="fill_parent" |
android:layout_height="fill_parent" /> |
<!-- 水平排列的LinearLayout --> |
android:layout_width="fill_parent" |
android:layout_height="fill_parent" |
androidrientation="horizontal" |
android:layout_marginTop="380px" |
android:background="#1e72bb" |
android:gravity="center"> |
android:id="@+id/startButton" |
android:layout_width="wrap_content" |
android:layout_height="wrap_content" |
android:background="@drawable/button_selector" /> |
<!-- 显示游戏剩余时间的文本框 --> |
android:id="@+id/timeText" |
android:layout_width="wrap_content" |
android:layout_height="wrap_content" |
android:gravity="center" |
android:textSize="20dip" |
android:width="150px" |
android:textColor="#ff9" /> |
这个界面布局很简单,指定按钮的背景色时使用了@drawable/button_selector,这是一个在resdrawable目录下配置的StateListDrawable对象,配置文件代码如下:
程序清单:codes18Link esdrawable-mdpiutton_selector.xml
<?xml version="1.0" encoding="UTF-8"?> |
<selector xmlns:android="http://schemas.android.com/apk/res/android"> |
<!-- 指定按钮按下时的图片 --> |
<item android:state_pressed="true" |
android:drawable="@drawable/start_down" |
<!-- 指定按钮松开时的图片 --> |
<item android:state_pressed="false" |
android:drawable="@drawable/start" |
开发了上面界面布局文件之后,其中GameView只是一个View的普通子类,运行该程序将可以看到如图18.3所示的界面:图18.3 游戏布局 (未完.摘自[疯狂Android讲义.李刚]) |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|