成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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:27:46

Android開發設置程序屬性

2013-05-14 11:16:26

AIR Android旋轉手勢

2013-05-14 10:39:27

AIR Android打包APK文件

2013-05-14 10:37:10

AIR Android設置訪問權限

2013-05-14 10:56:45

AIR Android多點觸摸

2013-05-14 09:50:44

Android開發Flash Build

2013-05-14 10:05:10

Android開發游戲設計

2013-05-14 11:01:34

AIR AndroidTouchEvent類

2013-05-14 11:04:58

AIR AndroidTouchEvent類

2012-03-09 13:26:53

2013-05-14 09:54:27

Android開發開源開發環境

2013-05-14 10:16:35

Android開發主類Main

2013-05-14 10:13:52

Android開發主類Main

2013-05-14 10:23:31

Android開發主類Main

2010-08-18 08:21:49

Adobe AIRAndroid

2013-05-14 11:13:02

AIR Android放大縮小手勢
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 97caoporn国产免费人人 | k8久久久一区二区三区 | 亚洲色图第一页 | 国产资源一区二区三区 | 色婷婷国产精品 | 午夜精品一区二区三区在线 | 国产精品精品久久久 | 天天干天天玩天天操 | 日韩电影免费观看中文字幕 | 九九热在线免费视频 | 成人性生交大片免费看r链接 | 久久亚洲欧美日韩精品专区 | 九九精品久久久 | 久久久影院 | 大象一区 | 在线观看国产三级 | 国产在线精品一区二区 | 自拍偷拍第1页 | 成人免费av | 韩国毛片视频 | 欧美高清dvd| 一区二区三区四区在线 | 欧洲国产精品视频 | 91精品国产综合久久精品 | 国产午夜在线 | 日本精品免费在线观看 | 天堂中文av | 中国91av| 欧美日韩在线成人 | www.久久99 | 四虎影音 | 亚洲成人免费电影 | 成人三区四区 | 国产精品一区二区无线 | 99日韩| 黄瓜av| 操久久| 欧美日本韩国一区二区三区 | 日韩1区 | 欧美一区二区三区高清视频 | 亚洲性视频在线 |