最近在公司没什么事,买了本书,学了下android。开始的时候觉得应该会比较简单,毕竟以前也看过一段时间swing,但是学一下才发现与swing基本上没关系,包括思路都不太一样。android自已发明了一系列的概念,路铺得比较宽,内容显得比较多,但只要把基本概念及整体流程弄清楚了,开发起来还是要比swing容易,swing界面复杂一点的话代码会相当的多,而且乱。android稍微好一点,可以用xml之类、资源文件等分担了一定的压力,不过组织不好的话,代码还是会比较乱。
android sdk里面自带了很多例子,是学习android应用的最佳资料,其它的不明白,首先看见了一个叫snake的文件夹,这个本人还是知道的,对于花了些时间看了下里面的代码。代码的设计还是相当不错的,组织得也不错,里面也包括了不少的android技术,至少有几个方面值得学习:
1.自定义属性attr.xml。这个例子的自定义属性有一点问题,不知道是不是版本的原来,本人使用2.3.3时值取不到,于是参考网上资料,稍微修改了下就行了。
<resources>
<declare-styleable name="TileView">
<attr name="tileSize" format="integer" />
</declare-styleable>
</resources>
2.自定义面板(VIEW)。我觉得这个功能很好,毕竟只通过xml布局不能达到完全灵活应用的程度,而手动创建又不能结合xml布局那么清晰。如果在其它类修改这个面板的属性又显得比较乱,所以最好是自己定义一个,把所有修改这个面板的逻辑全部放在自定义面板类中。
<com.example.android.snake.SnakeView
android:id="@+id/snake"
android:layout_width="match_parent"
android:layout_height="match_parent"
snake:tileSize="14" />
3.handler消息机制。这个概念有点新,主要作用是处理延时问题,即另开一线程完成耗时的操作。这个东西解释起来有点复杂。一种情况是线程操作完成后发送一空消息去执行后续更新操作。二是通过post去激活另一线程,即双缓冲。
private RefreshHandler mRedrawHandler = new RefreshHandler();
class RefreshHandler extends Handler {
/**
* 收到下面的sleep发送回来的消息时执行
*/
@Override
public void handleMessage(Message msg) {
SnakeView.this.update();
//调用onDraw方法重绘
SnakeView.this.invalidate();
}
public void sleep(long delayMillis) {
this.removeMessages(0);
//发送空消息激活handleMessage
sendMessageDelayed(obtainMessage(0), delayMillis);
}
};
4.图形的加载及处理。android关系图像的处理有多种方式,ImageView的scaleType,BitmapFactory,Bitmap的一系列create方法,甚至还有Canvas的一些操作。这些部分在本例中也有所涉及。
public void loadTile(int key, Drawable tile) {
Bitmap bitmap = Bitmap.createBitmap(mTileSize, mTileSize, Bitmap.Config.ARGB_8888);
//用Canvas将tile放入bitmap中,bitmap可以直接用createBitmap()方法得到,这里的Canvas作用不大
Canvas canvas = new Canvas(bitmap);
tile.setBounds(0, 0, mTileSize, mTileSize);
tile.draw(canvas);
mTileArray[key] = bitmap;
}
除了上面这些外,游戏代码也组织得相当的好,因此这是一个很值得学习的示例,下面将这个示例的工程代码上传上来,其中主要部分本人都加了注释,读起来会更加容易,也便以后回顾。
分享到:
相关推荐
在本文中,我们将深入探讨这款"Android贪吃蛇(最终版)"的实现原理、关键技术和开发流程。 一、游戏逻辑与设计 贪吃蛇游戏的基本逻辑是:蛇通过吃食物来增长,同时必须避免碰撞到自身或游戏边界。游戏分为两个...
【贪吃蛇】是一款经典的休闲游戏,源自早期的计算机游戏,如今在移动设备上得到了广泛的应用,尤其是在Android平台上。这个小项目是针对Android平台开发的一个贪吃蛇游戏的示例,旨在帮助开发者学习和理解Android...
【标题】"安卓贪吃蛇小游戏Android Studio实现"是一个基于Android Studio开发的项目,它旨在教授用户如何使用这个强大的集成开发环境(IDE)来创建一个经典的休闲游戏——贪吃蛇。这个项目对于初学者来说是一个很好...
通过对这个"简单的贪吃蛇源码"的分析,我们可以了解到Android游戏开发的基本流程和技巧,这对于想要学习Android游戏开发的开发者来说是非常有价值的。通过实践这样的源码,不仅可以提高编程技能,还能深入理解游戏...
【标题】:“Android贪吃蛇完整版”是一个基于Android平台开发的、功能完善的贪吃蛇游戏项目。这个项目不仅包含了游戏的基本玩法,还融入了精美的界面设计和背景音乐,为用户提供了丰富的游戏体验。 【描述】:...
【Android开发的贪吃蛇——课程设计详解】 贪吃蛇是一款经典的电子游戏,深受各年龄段玩家的喜爱。在Android平台上开发这款游戏,不仅可以帮助开发者巩固基础知识,还能提升对Android应用开发的理解和实践能力。本...
【贪吃蛇Android代码】项目是一个经典的移动游戏开发实例,主要使用了Android Studio作为集成开发环境,基于Java语言实现。这个项目旨在教授学生如何在Android平台上构建简单的游戏应用,通过理解并参考此代码,...
【Android 示例程序 Snake 贪吃蛇代码】是一款经典的Android平台上的游戏开发示例,它基于Java编程语言实现,展示了如何在Android环境中构建一个简单的2D游戏。此项目旨在帮助开发者理解和学习Android游戏开发的基本...
-android- 该项目实现了贪吃蛇这一经典小游戏在安卓...在这样的背景下,我将设计一个基于Android平台的贪吃蛇游戏。该文本,先介绍Android平台的开发 环境,然后说明游戏的主要模块设计,最后再介绍游戏的测试与运行。
在Android平台上,开发一款经典游戏“贪吃蛇”可以让我们深入了解移动应用的图形界面和游戏逻辑。本项目名为"MySnakeGame",它提供了一个完整的源码实现,旨在帮助开发者学习和理解Android游戏开发的关键概念。 ...
在Android开发的学习过程中,"贪吃蛇"是一个经典的示例项目,它可以帮助初学者更好地理解基本的游戏逻辑和Android SDK的应用。这个源码分析主要聚焦于如何在Android平台上实现一个简单的贪吃蛇游戏。 首先,我们要...
在Android平台上实现贪吃蛇游戏,是一次对移动应用开发技术深入理解的绝佳实践。这个项目不仅涵盖了基本的UI设计,还包括了事件处理、动画效果、游戏逻辑等多个方面,非常适合初学者进行学习和锻炼。 首先,贪吃蛇...
"基于 Android 的贪吃蛇游戏" 基于 Android 平台的贪吃蛇游戏开发是 Android 软件开发的经典案例,本文将详细介绍基于 Android 的贪吃蛇游戏开发的知识点。 知识点一: Android 软件开发环境 Android 软件开发...
综上所述,开发Android版的贪吃蛇游戏,需要掌握Android的基本组件、图形绘制、事件处理、线程管理和游戏逻辑等多个方面。通过实现这个游戏,开发者不仅可以提升Android编程技能,也能对游戏开发有更深入的理解。在...
本资源是基于Android移动应用开发,用Android studio实现的期末作业,贪吃蛇小游戏。功能比较少,玩家可通过相应功能按键实现小游戏运行,碰到墙壁游戏结束 所使用配置: 1. Android studio 2022 Electric Eel(2022....
在Android平台上,开发一款经典游戏如“贪吃蛇”是一个很好的学习实践,它涉及到许多核心技术和组件。这个项目是基于Java编程语言实现的,因为Java是Android应用的主要开发语言。以下将详细介绍Android开发中涉及的...
【标题】"java Android贪吃蛇源码"指的是一个基于Java编程语言开发的Android平台上的贪吃蛇游戏项目。在Android应用开发中,Java是最常用的语言之一,它为开发者提供了丰富的API和工具来构建功能丰富的移动应用。在...