Android中贪吃蛇游戏的学习(二)

来源:互联网 发布:数据集成方案 编辑:程序博客网 时间:2024/05/22 00:32

Android中贪吃蛇游戏的学习(二)

文章分类:移动开发

  snake类为Activty的类,是Android项目的主类。

Java代码 复制代码
  1. package com.easyway.dev.android.snake;   
  2.   
  3. import android.app.Activity;   
  4. import android.os.Bundle;   
  5. import android.view.Window;   
  6. import android.widget.TextView;   
  7.   
  8. /**  
  9.  * 贪吃蛇游戏(代码来源自Android的源代码中)  
  10.  *   
  11.  * 每一种移动开发环境都有自己的基类。如J2ME应用程序的基类是midlets,BREW的基类是applets,  
  12.  * 而Android程序的基类是Activity。这个activity为我们提供了对移动操作系统的基本功能和事件  
  13.  * 的访问。这个类包含了基本的构造方法,键盘处理,挂起来恢复功能,以及其他底层的手持设备的访问。  
  14.  * 实质上,我们的应用程序将是一个Activity类的扩展。在本文中读者将会通过例子学习到如何使用  
  15.  * Activity类来编写Android程序。  
  16.  *   
  17.  * 这事Android的Activty类的子类,一个Activty类是一个简单的启动程序和控制程序的类。  
  18.  * 它可以根据需要创建界面,但是不是必须。在Android程序中,用户界面是由叫做views类来组织的,一个  
  19.  * view可以简单理解为可以绘制的对象,  
  20.  */  
  21. public class Snake extends Activity {   
  22.   
  23.     private SnakeView mSnakeView;   
  24.        
  25.     private static String ICICLE_KEY = "snake-view";   
  26.   
  27.        
  28.     /**  
  29.      * onCreate方法将在应用程序第一次开始时调用。Bundle对象包含了任何用于建立参数或环境数据  
  30.      * 所需要的基本信息。Activity可以是全屏的,或是悬浮的。它们可以是嵌套的,但是每一部分基  
  31.      * 本是独立的。  
  32.      *   
  33.      * 在Activity类被调用时首先被创建,关闭标题栏,设置视图内容,激活视图页面  
  34.      * Called when Activity is first created. Turns off the title bar, sets up  
  35.      * the content views, and fires up the SnakeView.  
  36.      *   
  37.      */  
  38.     @Override  
  39.     public void onCreate(Bundle savedInstanceState) {   
  40.         super.onCreate(savedInstanceState);   
  41.         //setTitle("程序标题");   
  42.   
  43.         // No Title bar   
  44.         //设置标题栏   
  45.         requestWindowFeature(Window.FEATURE_NO_TITLE);   
  46.         //Activty的setContentView()方法指示系统要用哪个view作为Activty的界面,   
  47.         //如果一个Activty类的没有执行这个方法,将会没有界面并且显示白屏。   
  48.         setContentView(R.layout.snake_layout);   
  49.         //查找设置视图   
  50.         mSnakeView = (SnakeView) findViewById(R.id.snake);   
  51.         mSnakeView.setTextView((TextView) findViewById(R.id.text));   
  52.         //视图状态的为空创建一个新视图,设置为准备状态   
  53.         if (savedInstanceState == null) {   
  54.             // We were just launched -- set up a new game   
  55.             mSnakeView.setMode(SnakeView.READY);   
  56.         } else {   
  57.             // We are being restored   
  58.             //获取资源的信息   
  59.             Bundle map = savedInstanceState.getBundle(ICICLE_KEY);   
  60.             if (map != null) {   
  61.                 mSnakeView.restoreState(map);   
  62.             } else {   
  63.                 //暂停状态   
  64.                 mSnakeView.setMode(SnakeView.PAUSE);   
  65.             }   
  66.         }   
  67.     }   
  68.     /**  
  69.      * 暂停的操作  
  70.      */  
  71.     @Override  
  72.     protected void onPause() {   
  73.         super.onPause();   
  74.         // Pause the game along with the activity   
  75.         mSnakeView.setMode(SnakeView.PAUSE);   
  76.     }   
  77.        
  78.     @Override  
  79.     public void onSaveInstanceState(Bundle outState) {   
  80.         //Store the game state   
  81.         outState.putBundle(ICICLE_KEY, mSnakeView.saveState());   
  82.     }   
  83.   
  84. }  
原创粉丝点击