天天看點

微信小遊戲開發實戰2:使用表格處理資料

上一節中講過使用表格來存儲和處理遊戲中的資料。這一節我們直接上手,學習表格中的資料處理,我們将會實作以下的内容:

  • 建立一個10行10列(10x10)的表格,預設值都設定為0
  • 随機的在表格中插入一行資料1
  • 逐行周遊,找到滿足條件的行(即整行的資料都是1)

建立表格

在“資料區”中點選“建立表格”按鈕,建立一個叫做“網格”的全局變量。

微信小遊戲開發實戰2:使用表格處理資料
微信小遊戲開發實戰2:使用表格處理資料

會看到一個表格編輯的視窗,點選“新增行”和“新增列”建立一個10行10列的表格。

微信小遊戲開發實戰2:使用表格處理資料

将所有格子中的資料都設定為“0”,最後看起來應該是這樣。

微信小遊戲開發實戰2:使用表格處理資料

這樣一個10x10的所有預設資料為0的表格就建立好了。

随機在表格中插入一行資料

為了友善示範,我在場景中增加了兩個按鈕,一個叫做“加入一行”,一個叫做“查找比對”。我們會把插入邏輯和查找邏輯分别放在對應的按鈕對象上。

你可以對照着下圖添加你的素材。

微信小遊戲開發實戰2:使用表格處理資料

在“加入一行”對象上建立兩個局部變量:行号和列号。

微信小遊戲開發實戰2:使用表格處理資料

接着,我們直接看代碼邏輯。

微信小遊戲開發實戰2:使用表格處理資料

如果一下看不明白,也無需着急。對着下面的分析再多看幾遍。

因為我們的表格一共10行,是以這裡我們取了1~10之間的随機整數,作為将要設定的行,并且将這個數字儲存在了局部變量“行号”中(通常對于後續需要用到的資料,都會用局部變量來存儲)。循環開始前将列号設定為1,因為要從第1列開始依次向後設定,直到第10列。假設随機到了第1行後,開始進入循環,首先會将表格中第1行第1列的數字設定為1,接着第1行第2列,直到第1行第10列後,循環結束。這樣第1行中所有的10個數字就都從0變為了1。

接下來,我們驗證一下,點選預覽場景右側的下拉小箭頭,選擇“調試場景”。

微信小遊戲開發實戰2:使用表格處理資料

調試場景像下面這樣,你以後會經常用到。點選“系統全局”可以看到我們建立的全局變量“網格”,滑鼠移動網格的資料上,會顯示目前網格的資料。

微信小遊戲開發實戰2:使用表格處理資料

接着點選“加入一行”,可以看到我們為它建立的兩個局部變量,“行号”和“列号”。

微信小遊戲開發實戰2:使用表格處理資料

現在,點選一下場景中的“加入一行”按鈕,你會看到“行号”和“列号”的局部變量發生了變化,目前“行号”為9,意味着我們随機到了數字9,即将表格中第9行的所有資料設定成了1。

微信小遊戲開發實戰2:使用表格處理資料

看一下系統全局中的網格資料,是否是第9行被設定為了1。

微信小遊戲開發實戰2:使用表格處理資料

第9行的資料确實都被設定為了1,證明了我們邏輯沒有問題。你可以多點選幾次“加入一行”按鈕,多設定幾行表格資料,在全局變量中檢視。

查找滿足條件的行

我們的查找邏輯是這樣的:從上往下,依次查找表格中的每一行,如果一行中所有的資料都是1,那麼記錄一下這一行的行号,直到表格查找結束。

首先,我們建立4個局部變量。

微信小遊戲開發實戰2:使用表格處理資料

“行号”和“列号”用于循環,“都是1”用來表示目前一行的資料是否都是1,如果滿足條件的話設定為1,不滿足的話設定為0,

建立一個清單局部變量“比對行”,用于記錄目前滿足條件的行号,因為表格中可能會有多行滿足條件,是以這裡我們使用清單來記錄所有滿足條件的行号。

下面我們來看一下查找比對的邏輯:

微信小遊戲開發實戰2:使用表格處理資料

這裡有一個難點就是“雙重循環”,如果你周遊的資料隻有一行的話,那麼隻需要一個循環就可以了,但是,當你要周遊10行10列的資料時,就需要用到“雙重循環”。一個循環用于行,一個循環用于列。它隻是看上去複雜,認真的分析一下其實不難了解。

我們從表格的第一行開始檢查,想象一下我們從表格中拿出了第一行資料,然後從這一行資料的第一個一直檢查到最後一個,看看是否有數字不為1,隻要有一個數字不為1,就證明這一行不符合條件,就沒有必要接着往下檢查了。檢查完一行後,如果它符合條件我們就把這一行的行号記錄下來,放到“比對行”的清單中。接下來再取出第二行,進行同樣的操作,直到取完第十行為止。

點選“調試場景”,檢查一下邏輯是否有問題,先點選幾次“加入一行”按鈕,随機的在表格中加入幾行資料。

微信小遊戲開發實戰2:使用表格處理資料

接着點選“查找比對”按鈕,選擇“查找比對”,看一下“比對行”局部變量的資料。

微信小遊戲開發實戰2:使用表格處理資料

如圖,找到了第7,6,1行是滿足條件的。

小提示:因為我們總是在清單中的第1項插入資料,是以最後的結果是[7,6,1],是倒序。真實過程是這樣的,檢查到第1行滿足條件,插入清單,清單變為[1],接着檢查到第6行滿足條件,插入清單,清單變為[6,1],接着第7行滿足條件,插入清單,清單變為[7,6,1]。

總結一下

這一節我們學習了表格的建立,設定,周遊和查找操作。并且學習了使用“調試場景”在遊戲運作時檢視全局變量和局部變量,來驗證邏輯是否正确。

練一下

繼續閱讀