第三章 显示文字和图片 从 本章开始,读者就要编写代码了。按照作者的原则——少一些理论,多一些实践,代码中可能会有跳跃的地方。但是请大家不要着急,随着学习的深入,你很快就会 了解其中的奥秘。不过在开始之前,我们还是要先来理顺一下思路,看看完成一个坦克大战游戏需要哪些工作:首先,我们需要一个基本的程序,这个程序能够在 Android上运行;这个程序要能够显示图形包括地图,主角和NPC等等;程序能够接受用户的输入,控制主角移动;程序要能够控制 NPC和子弹的移动; 程序还能对各种事件做出判断,比如击中敌人,获得物品,胜利或者失败。 现在我们就从基本程序开始,一步一步实现它。 首先,让我们看一下刚刚生成的文件目录 在源文件目录下,只有 Main.java和R.java两个文件,刚刚被我们命名成Main.java的文件就是程序的入口文件。而 R.java是由插件来维护的资源定义文件,我们先不管它。 Main.java内容如下: package org.yexing.android.games.tank; import android.app.Activity; import android.os.Bundle; public class Main extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } } 很 幸运,Main.java的代码非常之少,而且还有一段注释,以致我们很容易知道函数onCreate的作用,需要解释的只是 setContentView()。先不要管注释中提到的Activity和 setContentView的参数R.layout.main,我们使用 setContentView的另一种形式:setContentView(View view)。setContentView的作用是设定当前使用的视图即 View(依此理解,可以有很多个 View,需要用哪个就可以把他作为 setContentView的参数显示出来)。View是一个非常重要的组件,它可以用来显示文字,图片,也可以接收客户的操作,比如触摸屏,键盘等 等,而我们的游戏中正是需要绘图和交互,看来 View很符合我们的需要(但是请注意,使用View并不是我们的最终方案,原因会在后面说明。此处介绍 View是为了讲解基础的图形和用户控制)。 下面我们就要订制一个属于自己的View,可以通过继承自系统提供的View,并重载相关的函数来实现。创建类的方法如下: 右击包名 New -> Class 我们将这个 View类命名为 GameView,并且由 android.view.View继承 点 ...