AIR Android:创建棋子类Grid

移动开发 Android
棋子是构成棋盘的基础。从面向对象编程的角度分析,每个棋子的使用方法完全相同,都支持翻转变色,每个棋子有自己的状态,不同的状态决定了其颜色。换句话说,棋子这个对象包含了一个处理翻转行为的方法和一个存放自身状态的属性。

像往常一样编写ActionScript代码

打开FlashDevelop(FD),创建项目FlipIt,FD会自动创建主程序Main类。不要急于编写主程序,为了让程序的结构更合理,可以先将其中某些功能分离出来,增强代码的灵活性。在这个游戏中,可以独立出来的一个对象就是棋子。

创建棋子类Grid

棋子是构成棋盘的基础。从面向对象编程的角度分析,每个棋子的使用方法完全相同,都支持翻转变色,每个棋子有自己的状态,不同的状态决定了其颜色。换句话说,棋子这个对象包含了一个处理翻转行为的方法和一个存放自身状态的属性。

根据上面的分析创建Grid类来表示棋子,如代码清单2-1所示。

代码清单2-1 棋子Grid类

  1. package  
  2.  {  
  3.          import flash.display.Graphics;  
  4.          import flash.display.Sprite;  
  5.    
  6.          public class Grid extends Sprite  
  7.          {  
  8.                  //棋子的值  
  9.                  private var _value:Boolean;  
  10.                  //圆的半径  
  11.                  private var _radius:int;  
  12.                  //id,即棋子在地图上的位置,用来寻找周围的棋子  
  13.                  public var id:int;  
  14.    
  15.                  public function Grid( value:Boolean = falseradius:int = 30)  
  16.                  {  
  17.                          _value = value;  
  18.                          _radius = radius;  
  19.                          //获取初始值后,画圆  
  20.                          draw();  
  21.                  }  
  22.                  //翻转棋子  
  23.                  public function doFlip():void  
  24.                  {  
  25.                          //改变值,并重新绘制圆  
  26.                          _value = !_value;  
  27.                          draw();  
  28.                  }  
  29.                  //判断棋子是不是白色状态  
  30.                  public function isWhite():Boolean  
  31.                  {  
  32.                    return _value == true;  
  33.                  }  
  34.                  //每次状态变化时,都调用draw进行重绘  
  35.                  private function draw():void  
  36.                  {  
  37.                          var g:Graphics = graphics;  
  38.                          g.clear();  
  39.                          //如果当前值为true,则用白色作为填充色  
  40.                          if ( isWhite() )  
  41.                          {  
  42.                                  g.beginFill(0xFFFFFF);  
  43.                          }  
  44.                          else  
  45.                          {  
  46.                                  g.beginFill(0x333333);  
  47.                          }  
  48.                          //画圆,并保证Sprite的注册点在原点  
  49.                          g.drawCircle(_radius, _radius, _radius);  
  50.                          g.endFill();    
  51.                  }  
  52.          }  
  53.  }

Grid类中没有使用图片素材,只是动态绘制了一个圆来代表棋子。初次创建或调用doFlip方法后,若棋子的值发生变化,都会调用draw方法重新绘制圆,并改变填充色。属性id很重要,记录了棋子本身在棋盘上的编号,后面我们将通过id值来寻找它四周的棋子。

责任编辑:闫佳明 来源: book.51cto.com
相关推荐

2013-05-03 15:17:59

Android开发Android SDK

2013-05-14 11:18:24

AIR AndroidSwipe手势

2011-06-16 10:25:29

AndroidAIR

2013-05-14 09:57:37

2013-05-14 10:37:10

AIR Android设置访问权限

2013-05-14 11:16:26

AIR Android旋转手势

2013-05-14 10:27:46

Android开发设置程序属性

2013-05-14 10:39:27

AIR Android打包APK文件

2013-05-14 10:56:45

AIR Android多点触摸

2013-05-14 10:05:10

Android开发游戏设计

2013-05-14 09:50:44

Android开发Flash Build

2013-05-14 11:04:58

AIR AndroidTouchEvent类

2013-05-14 11:01:34

AIR AndroidTouchEvent类

2012-03-09 13:26:53

2013-05-14 10:16:35

Android开发主类Main

2013-05-14 09:54:27

Android开发开源开发环境

2013-05-14 10:23:31

Android开发主类Main

2010-08-18 08:21:49

Adobe AIRAndroid

2013-05-14 10:13:52

Android开发主类Main

2013-05-14 11:13:02

AIR Android放大缩小手势
点赞
收藏

51CTO技术栈公众号