国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

AIR Android:編寫主類Main(1)

移動開發 Android
第一個AIR Android程序:翻轉黑白棋,本模塊將編寫一個完整的移動小游戲,并把它部署在手機上。因此,我們將親歷一個移動程序完整的誕生過程,從程序設計、代碼編寫,到最后的安裝。在這個過程中會涉及很多Android開發的技術細節,讀者也可以近距離感受AIR帶來的開發樂趣。本文為大家介紹編寫主類Main。

編寫主類Main

接下來編寫主類Main的代碼。按照之前的設計,主程序主要有以下兩個功能:

創建棋盤

處理用戶的交互動作

下面先來實現***個功能。

1.創建棋盤

上一節使用了二維矩陣來描述地圖數據,其實編寫代碼沒那么復雜,直接用一個二維數組就可以實現這個功能,代碼如下:

 

  1. var gameMap:Array = new Array();      
  2. //每一行用一維數組來表示    
  3. gameMap[0] = [BLACK, WHITE, WHITE, BLACK];  
  4. gameMap[1] = [WHITE, BLACK, BLACK, WHITE];  
  5. gameMap[2] = [WHITE, BLACK, BLACK, WHITE];  
  6. gameMap[3] = [BLACK, WHITE, WHITE, BLACK]; 

 

BLACK和WHITE是兩個常量,這樣看起來更直觀。利用數組,正好將地圖上的信息全面展示出來,從中可以看到每個棋子的初始狀態及在棋盤上的位置,創建棋盤的工作就變得簡單多了,如代碼清單2-2所示。

代碼清單2-2 創建棋盤

  1. column_number = 4;  
  2.  var rowCount:uint = gameMap.length;  
  3.  var rowArray:Array;  
  4.  var i:uint, len:uint;  
  5.  var grid:Grid;  
  6.  //棋子的間距  
  7.  var space:int = 10;  
  8.  //根據數組創建棋盤  
  9.  for ( var row:uint = 0; row < rowCount; row++)  
  10.  {  
  11.          //獲取每一行的數據  
  12.          rowArray = gameMap[row];  
  13.          len = rowArray.length;  
  14.          for ( i = 0; i < len; i++)  
  15.          {  
  16.                  //創建Grid,并賦予初始值。GRID_RADIUS常量定義了棋子的尺寸  
  17.                  grid = new Grid(rowArray[i], GRID_RADIUS);  
  18.                  //計算出棋子在棋盤上的編號  
  19.                  grid.id = row * column_number + i;  
  20.                  //設置棋子的坐標  
  21.                  grid.x = i * (GRID_RADIUS*2 + space);  
  22.                  grid.y = row * (GRID_RADIUS*2 + space);  
  23.                  //將棋子放在一個容器中,方便管理  
  24.                  grid_container.addChild(grid);  
  25.                  //按照編號將棋子保存在數組中,待以后查找  
  26.                  grids[grid.id] = grid;  
  27.          }  
  28.  } 

在創建棋盤時,使用數組grids保存了對所有棋子的引用,且棋子在數組中的索引和棋子在棋盤上的編號一一對應,這樣在查找周邊棋子時,只需要計算出周邊棋子的id即可。

棋盤創建完畢后,接下來處理用戶交互動作。

2.處理用戶交互動作

由于所有的棋子都被放在同一個容器中,因此可以只對容器添加監聽器,而不用監聽每個棋子的鼠標事件,如代碼清單2-3所示。

代碼清單2-3 處理用戶交互動作

  1. grid_container.addEventListener(MouseEvent.CLICK, onClickHandler);  
  2.  
  3.  private function onClickHandler(e:MouseEvent):void  
  4.  {  
  5.          //由于沒有其他地方監聽對象的鼠標事件,因此中止冒泡事件     
  6.          e.stopImmediatePropagation();    
  7.          var grid:Grid = e.target as Grid;  
  8.          //只有單擊對象是棋子才執行后面的代碼  
  9.          if ( grid == null) return;  
  10.          //翻轉當前單擊的棋子  
  11.          grid.doFlip();  
  12.          //翻轉周圍的四個棋子,用一個臨時數組存放周圍棋子的id  
  13.          var ids:Array = new Array(grid.id - column_number, grid.id + column_number);  
  14.          //如果棋子是在最左端,則左邊是空的,反之左邊存在棋子  
  15.          if ( grid.id % column_number != 0 )  
  16.          {  
  17.                  ids.push(grid.id - 1);  
  18.          }  
  19.          //如果棋子是在最右端,則右邊是空的,反之右邊存在棋子  
  20.          if ( grid.id % column_number != (column_number-1) )  
  21.          {  
  22.                  ids.push(grid.id + 1);  
  23.          }  
  24.          //記錄下棋子的總數  
  25.          var totalGrid:int = grids.length;  
  26.          //循環數組,翻轉周圍棋子        
  27.          for ( var i:uint = 0len:uint = ids.length; i < len; i++)  
  28.          {  
  29.                  var index:int = ids[i];  
  30.                  //上面或下面的棋子可能不存在,需要判斷,如果超過數組界限,則不存在  
  31.                  if (index <0 || index >= totalGrid) continue;  
  32.                  grid = grids[index];  
  33.                  if ( grid != null )  
  34.                  {  
  35.                  grid.doFlip();  
  36.                  }  
  37.            }  
  38.            //處理完棋子的翻轉后,***檢查當前棋子是不是都變白了      
  39.            if ( isAllWhite() )  
  40.            {  
  41.                  //game over  
  42.                  gameOver();  
  43.            }  
  44.  }
責任編輯:閆佳明 來源: book.51cto.com
相關推薦

2013-05-14 10:16:35

Android開發主類Main

2013-05-14 10:23:31

Android開發主類Main

2013-05-14 11:01:34

AIR AndroidTouchEvent類

2013-05-14 11:04:58

AIR AndroidTouchEvent類

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

AIR Android打包APK文件

2013-05-14 10:27:46

Android開發設置程序屬性

2013-05-14 10:56:45

AIR Android多點觸摸

2013-05-14 10:10:28

Android開發棋子類Grid

2013-05-14 10:05:10

Android開發游戲設計

2013-05-14 09:50:44

Android開發Flash Build

2012-03-09 13:26:53

2013-05-14 09:54:27

Android開發開源開發環境

2010-08-18 08:21:49

Adobe AIRAndroid

2013-05-14 11:13:02

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

51CTO技術棧公眾號

经典三级在线视频| 日本欧美亚洲| 亚洲图区在线| 一道本无吗dⅴd在线播放一区| 四虎在线免费观看| 国产精品美女久久久久av爽李琼 | 色老头一区二区三区在线观看| 在线观看黄色av| 亚洲国产成人高清精品| av天在线播放| 日韩理论片网站| aaa大片免费观看| 一区免费观看视频| jizzjizzjizz亚洲| 日韩理论片在线| 天堂中文av| 亚洲观看高清完整版在线观看 | 国产激情久久久久| 久久99精品久久久久久园产越南| 欧美成人免费一级人片100| 欧美成人黄色| 久久久久久伊人| 18国产精品| 久久久亚洲天堂| 在线一级成人| 成人免费激情视频| 女生裸体视频一区二区三区| 91久久久久久久久久久久久| 99久久99热这里只有精品| 亚洲va国产va天堂va久久| 欧美福利影院| 欧美一区国产一区| 国产91精品一区二区麻豆网站 | 婷婷激情综合| 亚洲综合在线小说| 中文亚洲欧美| 天堂精品一区二区三区| 久草精品在线观看| 国产91美女视频| 亚洲欧洲综合另类在线| 小小水蜜桃在线观看| 欧美日韩国产首页| 波多野结衣视频一区二区| 中文字幕国产亚洲| 久久99国产精品视频| 国产wwwxx| 99精品国产在热久久婷婷| 国产精品自拍首页| 另类小说综合欧美亚洲| 成人性生活视频免费看| 中文字幕不卡一区| 精品乱码一区二区三四区视频| 欧美日韩一区不卡| 亚洲美女炮图| 韩日欧美一区二区| 欧美区一区二| 玖玖精品在线视频| 国产精品不卡一区| 9色在线观看| 亚洲乱码国产乱码精品精天堂| 色诱色偷偷久久综合| 日韩美女写真福利在线观看| 91久久综合| 又粗又黑又大的吊av| 午夜欧美视频在线观看 | 国产一区二区不卡视频| 国产一区二区三区蝌蚪| 午夜网站在线观看| 欧洲色大大久久| 久久麻豆视频| 99久久免费国| 99精品在线观看视频| 欧美另类极限扩张| 亚洲人成电影网站色…| 国产尤物久久久| 亚洲欧美日韩精品在线| 亚洲欧洲99久久| 19禁羞羞电影院在线观看| 午夜免费日韩视频| 日本麻豆一区二区三区视频| 99999色| 亚洲韩国青草视频| 91亚洲成人| 四虎永久在线精品无码视频| 在线观看欧美黄色| 九色丨蝌蚪丨成人| 国产麻豆电影在线观看| 欧美日韩国产在线播放| 黄色成人在线视频| 精品在线观看一区二区| 亚洲日本在线a| 亚洲mmav| 欧美日韩精品久久| 亚洲综合成人在线视频| japanese23hdxxxx日韩| 国产一区二区视频在线免费观看| 久久精品网站免费观看| 国产精品蜜臀| av观看久久| 亚洲日本欧美天堂| 亚洲精品大全| 精品国产中文字幕| 亚洲成人自拍偷拍| 日本一区影院| 91免费国产精品| 欧美剧在线免费观看网站| 九九综合九九| 九热视频在线观看| 亚洲最新av在线| 天堂一区二区在线| 手机福利在线| 国产成人精品一区| 国产精品久久网站| av一级久久| 水蜜桃色314在线观看| 日韩欧美的一区二区| 中文无码久久精品| 影音先锋另类| 国产精品自拍视频| 亚洲精品免费在线播放| 91蝌蚪精品视频| 色婷婷综合久久久久中文字幕| 中文字幕av一区| 国产综合色产在线精品| a级网站在线播放| 久久久久久国产精品免费免费| 亚洲福利国产精品| 伊人成综合网yiren22| 男女爱爱免费网站| 久久久久久999| 国产亚洲精品资源在线26u| 日本久久一区| 精品一区二区中文字幕| 最近2019中文字幕一页二页| 韩国女主播成人在线| 亚洲天堂av影院| 97超碰人人爱| 国产亚洲xxx| 成人av网站在线观看| 四虎在线精品| 不卡av免费在线| 91av在线视频观看| 一区2区3区在线看| 日本久久精品| 九色在线观看视频| 久久久97精品| 国产精品一区二区x88av| 性爱视频在线播放| 一区二区不卡视频| 中文字幕在线亚洲| 久久精品一区二区三区四区| 高清欧美性猛交xxxx黑人猛| 成人性生交大片免费看视频r| 2020欧美日韩在线视频| 亚洲乱码国产乱码精品精可以看| 嫩草国产精品入口| 成人a视频在线| 国产一级二级三级精品| 欧美大片一区二区| 国产成人av影院| 亚洲专区**| 日韩av资源| 一区二区高清视频| 九九久久精品一区| 午夜久久久久久久久| 免费亚洲一区| 婷婷久久综合九色综合99蜜桃| 亚洲第一狼人区| 99视频在线| 亚洲天堂日韩电影| 亚洲欧美日韩国产另类专区 | 99av国产精品欲麻豆| 免费高潮视频95在线观看网站| 欧美精品久久久久久久自慰| 久久久亚洲精选| 欧美日韩三级一区二区| 不卡在线观看av| 婷婷综合久久| 欧美电影网址| 黄页网站在线播放| 亚洲综合第一| 日韩av免费看| 日韩欧美国产高清| 中文幕一区二区三区久久蜜桃| 91精品啪在线观看国产18| 性网站在线观看| 好男人www社区| 国产亚洲精品美女久久久m| 亚洲一级片在线看| 欧美性xxxx极品高清hd直播| 国产自产v一区二区三区c| 香蕉一区二区| 黑森林国产精品av| 免费亚色电影在线观看| 一区二区三区四区视频在线观看| 国产91精品久久久久久久| 日韩欧美美女一区二区三区| 国产精品入口麻豆原神| 天堂一区二区在线免费观看| 欧美aaaaaaaa牛牛影院|