自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

AIR Android:創(chuàng)建棋子類Grid

移動開發(fā) Android
棋子是構(gòu)成棋盤的基礎(chǔ)。從面向?qū)ο缶幊痰慕嵌确治?,每個棋子的使用方法完全相同,都支持翻轉(zhuǎn)變色,每個棋子有自己的狀態(tài),不同的狀態(tài)決定了其顏色。換句話說,棋子這個對象包含了一個處理翻轉(zhuǎn)行為的方法和一個存放自身狀態(tài)的屬性。

像往常一樣編寫ActionScript代碼

打開FlashDevelop(FD),創(chuàng)建項目FlipIt,F(xiàn)D會自動創(chuàng)建主程序Main類。不要急于編寫主程序,為了讓程序的結(jié)構(gòu)更合理,可以先將其中某些功能分離出來,增強(qiáng)代碼的靈活性。在這個游戲中,可以獨(dú)立出來的一個對象就是棋子。

創(chuàng)建棋子類Grid

棋子是構(gòu)成棋盤的基礎(chǔ)。從面向?qū)ο缶幊痰慕嵌确治觯總€棋子的使用方法完全相同,都支持翻轉(zhuǎn)變色,每個棋子有自己的狀態(tài),不同的狀態(tài)決定了其顏色。換句話說,棋子這個對象包含了一個處理翻轉(zhuǎn)行為的方法和一個存放自身狀態(tài)的屬性。

根據(jù)上面的分析創(chuàng)建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.                  //翻轉(zhuǎn)棋子  
  23.                  public function doFlip():void  
  24.                  {  
  25.                          //改變值,并重新繪制圓  
  26.                          _value = !_value;  
  27.                          draw();  
  28.                  }  
  29.                  //判斷棋子是不是白色狀態(tài)  
  30.                  public function isWhite():Boolean  
  31.                  {  
  32.                    return _value == true;  
  33.                  }  
  34.                  //每次狀態(tài)變化時,都調(diào)用draw進(jìn)行重繪  
  35.                  private function draw():void  
  36.                  {  
  37.                          var g:Graphics = graphics;  
  38.                          g.clear();  
  39.                          //如果當(dāng)前值為true,則用白色作為填充色  
  40.                          if ( isWhite() )  
  41.                          {  
  42.                                  g.beginFill(0xFFFFFF);  
  43.                          }  
  44.                          else  
  45.                          {  
  46.                                  g.beginFill(0x333333);  
  47.                          }  
  48.                          //畫圓,并保證Sprite的注冊點(diǎn)在原點(diǎn)  
  49.                          g.drawCircle(_radius, _radius, _radius);  
  50.                          g.endFill();    
  51.                  }  
  52.          }  
  53.  }

Grid類中沒有使用圖片素材,只是動態(tài)繪制了一個圓來代表棋子。初次創(chuàng)建或調(diào)用doFlip方法后,若棋子的值發(fā)生變化,都會調(diào)用draw方法重新繪制圓,并改變填充色。屬性id很重要,記錄了棋子本身在棋盤上的編號,后面我們將通過id值來尋找它四周的棋子。

責(zé)任編輯:閆佳明 來源: book.51cto.com
相關(guān)推薦

2013-05-03 15:17:59

Android開發(fā)Android SDK

2011-06-16 10:25:29

AndroidAIR

2013-05-14 11:18:24

AIR AndroidSwipe手勢

2013-05-14 09:57:37

2013-05-14 10:56:45

AIR Android多點(diǎn)觸摸

2013-05-14 10:27:46

Android開發(fā)設(shè)置程序?qū)傩?/a>

2013-05-14 11:16:26

AIR Android旋轉(zhuǎn)手勢

2013-05-14 10:39:27

AIR Android打包APK文件

2013-05-14 10:37:10

AIR Android設(shè)置訪問權(quán)限

2013-05-14 11:04:58

AIR AndroidTouchEvent類

2013-05-14 11:01:34

AIR AndroidTouchEvent類

2013-05-14 09:50:44

Android開發(fā)Flash Build

2013-05-14 10:05:10

Android開發(fā)游戲設(shè)計

2012-03-09 13:26:53

2013-05-14 11:13:02

AIR Android放大縮小手勢

2013-05-14 10:13:52

Android開發(fā)主類Main

2013-05-14 10:23:31

Android開發(fā)主類Main

2010-08-18 08:21:49

Adobe AIRAndroid

2013-05-14 10:16:35

Android開發(fā)主類Main

2013-05-14 09:54:27

Android開發(fā)開源開發(fā)環(huán)境
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號