<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ## **第 3 章 打地鼠** * * * * * **教學制作**:一克拉 * * * * * **App作品下載**: * * * * * **視頻教程**:稍候上傳 * * * * * **效果說明**: 靈感來自一款經典的街機游戲Whac-A-Mole,其中的小動物會突然從洞中冒出,玩家則用木槌擊打它們,擊中得分。 ![](https://box.kancloud.cn/6278d8afc27adce46d46a428bc8bfbe4_240x189.png) * * * * * ![](https://box.kancloud.cn/dcea87edcd25adc292a2aac62bf1c698_400x619.jpg) APP界面截圖 * * * * * **一、【學習目標】** “打地鼠”應用將實現以下功能: 1. 一只地鼠隨機出現在屏幕上,每秒鐘移動一次; 2. 手指觸到地鼠,則讓設備震動,顯示的命中數加1,地鼠隨機移動到新位置; 3. 手指觸屏但沒點擊中地鼠,則顯示失敗數加1; 4. 點擊“重新開始”按鈕,游戲重新開始,命中和失敗的計數歸零。 **二、學習內容** 1. ImageSprite組件:具有觸感的可移動圖像;(精靈) 2. Canvas組件:容納ImageSprite的平臺;(畫布) 3. Clock組件:用來計時,讓sprite隨即移動;(計時傳感器) 4. Sound組件:擊中地鼠時產生震動;(音效) 5. Button組件:開始新游戲;(按鈕) 6. Procedures:用來實現一系列的指令,可以重復調用,如移動地鼠;() 7. 產生隨機數; 8. 使用加法塊(+)及減法塊(-)。 **三、準備開始** **Step1: 素材準備** 準備1:蘿卜坑背景圖一張 準備2:三種Size地鼠圖片各一張 準備3:準備一份音頻文件作為打地鼠背景音樂 **Step2:界面設計(組件及布局)** ![](https://box.kancloud.cn/dcea87edcd25adc292a2aac62bf1c698_400x619.jpg) * * * * * ![](https://box.kancloud.cn/3070e818ba7b1d78a9cee1e3a359560d_441x832.png) 拖拽一張畫布到屏幕上,為畫布設置指定的高度和寬度,我這里設置了寬350,高400。接著,拖拽9個圖像精靈到畫布上 ,將圖像精靈分別放在背景圖中有坑的位置。將第一排地鼠的圖像設置為mouse1.png、第二排設置為mouse2.png,第三排設置為mouse3.png,之所以沒有用到同一個圖像,是為了獲得視覺體驗的真實性,第一排地鼠最大,越往后地鼠越小。 * * * * * ![](https://box.kancloud.cn/8a6dcaea9e453d60e3ca232168584486_990x737.png) mouselist為列表類型變量,用來存放9只地鼠 play為一個開關邏輯變量,初始化設置為false,當play按鈕被按下設置其為true score為數據類型變量,初識成績為為0 endtime為數據類型變量,初識賦值60,單位為s,用來做游戲倒計時 music為一個開關邏輯變量,用來控制是否播放音樂 * * * * * **Step3: 邏輯塊設計(塊程序)** 1、初始化全局變量 ![](https://box.kancloud.cn/992bf11cf37644707a42453f349f53c2_360x250.jpg) (1)mouselist為列表類型變量,用來存放9只地鼠 (2)play為一個開關邏輯變量,初始化設置為false,當play按鈕被按下設置其為true (3)score為數據類型變量,初識成績為為0 (4)endtime為數據類型變量,初識賦值60,單位為s,用來做游戲倒計時 (5)music為一個開關邏輯變量,用來控制是否播放音樂 2、自定義一個過程 initialize ![](https://box.kancloud.cn/c4cadc6813c2b3a15f681638078f7ac6_635x617.png) ![](https://box.kancloud.cn/d08097e643aa70d159f3d920bdc052ac_435x330.png) (1)計時器要等到開始按鈕被按下才啟用 (2)開始按鈕未被按下,將play設置為false (3)背景音樂按鈕未被按下,將music設置為false (4)初始化score為0 (5)為列表變量mouselist初始化,相當于為列表賦值 (6)一開始想設置圖像精靈全部不顯示,因此,這里使用了一個循環,循環取列表中的圖像精靈,將其顯示狀態設置為false,圖像精靈通過索引值的方法來獲得。而且這里用到了任意組件 (7)設置畫布的畫筆顏色為白色 (8)設置畫布的線寬 (9)在背景圖上畫字“倒計時”,這里調用了“沿角度畫字”這個方法,目的是讓畫出的字能夠很好地顯示在我們的背景圖中 (10)在背景圖上畫字“分數” 3、設置屏幕初始化動作 ![](https://box.kancloud.cn/e4c51fa90ce530fc543616da609e72a5_226x91.png) (1)設計隨機顯示地鼠的過程 ![](https://box.kancloud.cn/4e3bce6981d273c67c738b3bc8e043d6_629x206.png) * * * * * ![](https://box.kancloud.cn/402ce11e3ec11f7c252fd43932877f28_525x514.png) 隨機選擇要顯示的地鼠,這里同樣用到了任意組件中的任意精靈的方法 任意組件的好處是我們不必為每一個組件設置重復的方法 * * * * * (2)設計地鼠隱藏過程 ![](https://box.kancloud.cn/1f66ba378324ee2b67ee1062a1c8a9bf_594x248.png) * * * * * 將傳值進來的地鼠顯示狀態設置為false,也就是隱藏該地鼠 將分數增加1分 調用隨機顯示地鼠的過程 該過程需要接收一個參數number,number為地鼠的序號 * * * * * (3)設置精靈被觸碰的動作 ![](https://box.kancloud.cn/fedb67a44152048121a87f8e45f3db45_793x398.png)當精靈被觸碰,即調用hidemouse這個過程,并把地鼠的序號作為參數傳過去,由于任意精靈中沒有精靈觸碰事件,因此9個精靈分別要寫相應的程序去處理。 * * * * * (4)處理play按鈕單擊事件 ![](https://box.kancloud.cn/ea0c016de86466da3a4093090bed13d7_497x294.png) 將play開關設置為取反,即如果當前play為false,那么按下按鈕則為true 如果play為true,則將play按鈕的顯示文本設置為“暫停”,啟動計時器計時 否則,也就是play為false,則將play的顯示文本設置為“開始”,停止計時器計時,并且顯示警告信息“游戲暫停”,這個過程中play按鈕充當了一個開關。 * * * * * (5)處理音樂按鈕單擊事件 ![](https://box.kancloud.cn/cc3a4a1388abcf7be0230f7a0ca2f85e_482x246.png) 這里的music邏輯變量也相當于一個開關,通過判斷music的真假來播放音樂。 * * * * * (6)定義過程——“顯示結果” ![](https://box.kancloud.cn/1cde374a6c44c55e7a06b08608e302a1_721x185.png) * * * * * (7)處理stop按鈕單擊事件 ![](https://box.kancloud.cn/234fbff51c7248ca4bd18b15de79de69_653x467.png) 當按下停止按鈕,進行判斷,如果剩余時間大于0,說明游戲沒有結束,因此提醒用戶“時間還沒到,是否確定退出游戲?” 當用戶選擇退出,則停止計時器計時,停止音樂播放,顯示最終成績。 * * * * * (8)設置計時器計時 ![](https://box.kancloud.cn/c3cf97f4400210285f5bbb321e835019_567x331.png) ![](https://box.kancloud.cn/6e14a989dce05b93c286bcfeb8706f8b_517x587.png) 每隔1S,剩余時間-1 如果剩余時間為0,停止計時器計時,顯示“時間到,游戲結束!”對話框;顯示最后的結果,顯示結果為一個單獨的過程,將music、play、stop都設置為不啟用 如果時間沒有到,就繼續顯示倒計時間和分數,這里在調用畫字過程之前都用到了清除畫布,原因是如果不清除畫布,畫布上會留下上一次的文字痕跡~~不懂?自己把清除畫布功能去掉看看效果嘛?! * * * * * (9)設置退出按鈕事件 ![](https://box.kancloud.cn/be5c835e0ff76c33b4b4ebe2b788d0aa_169x74.png) 直接關閉屏幕,退出程序。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看