• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      從頭開始學App Inventor(五)——打地鼠

      2022-10-08 05:41:19高瀾心
      電腦報 2022年38期
      關鍵詞:畫布列表精靈

      高瀾心

      打地鼠是一款大眾喜愛的經(jīng)典游戲,這次我們自己制作一個。在手機上用手指頭快速打擊出洞的地鼠,即可獲得分數(shù)。通過制作這個游戲,我們會涉及多屏幕切換、多組件模塊組合使用、畫布與精靈的坐標、計時器的應用等知識點。通過綜合運用各種技巧讓我們的游戲可玩性更高。

      游戲開始后進入選擇場景頁面,可以選擇3個場景(圖1)。

      場景1:地鼠隨機出現(xiàn)在屏幕任何位置,每500毫秒移動一次,如果玩家手指觸摸地鼠,顯示命中數(shù)增加1,并伴有音效;如果手指觸摸到屏幕但沒有擊中地鼠,則失敗數(shù)增加1(圖2)。

      場景2:地鼠隨機出現(xiàn)在地洞中,當擊中10次地鼠時,游戲結束并顯示“你贏了”(圖3)。

      場景3:在倒計時60秒時間內,每次擊中地鼠時命中數(shù)增加1,當時間為0時,顯示“游戲結束,請重新開始”(圖4)。

      登錄到http://app.gzjkw.net/等開發(fā)網(wǎng)站,新建項目,命名為“dadishu”。收集項目需要的素材:圖片4張(地鼠mole.png、被打中地鼠mole2.png、洞hole.png、2場景背景background.png、3場景背景background2.png)和擊中音效(zong.mp3)(圖5)。

      初始屏幕提示了游戲名,為3個不同場景做引導。初始屏幕的組件屬性設置如表1,組件排布如圖6。

      表1

      游戲由多個屏幕組成,點擊初始屏幕的三個按鈕可以切換到其他屏幕。這里我們使用了簡單的直接打開另一屏幕。App Inventor中,屏幕不能訪問另一個屏幕的組件或者變量,如果要實現(xiàn)屏幕之間的值傳遞,可以用“打開屏幕并傳值”和“關閉屏幕并返回值”模塊,不過這個模塊只能傳輸一個值,如果需要傳入多個值,可以通過列表的形式來傳遞。接收返回值時,可以使用“獲取初始值”模塊(圖7)。

      用“新增屏幕”新建一個屏幕,命名為“Screen_first”。注意屏幕組件一旦命名確定后就不能修改了。場景1的組件屬性設置如表2。

      表2

      想要控制地鼠的移動,我們先要了解Android的圖形定位機制,坐標(0,0)在畫布的左上角,圖像精靈的左上角是坐標(x,y)。

      因此當?shù)厥笪挥诋嫴甲笊辖菚r,其x和y值都是0。當?shù)厥笪挥诋嫴嫉挠蚁陆菚r,坐標是(畫布的寬度-圖像精靈的寬度,畫布的高度-圖像精靈的高度)。所以地鼠的移動范圍如圖8。

      在游戲開始前,為了讓所有組件不能意外移動,用一個全局變量來檢測游戲狀態(tài),建立全局變量“游戲已經(jīng)開始標志”。游戲沒開始時設為“假”,當點擊開始設為“真”,其他組件先檢查這個變量是否為“真”再進行后續(xù)的動作。

      點擊“開始”按鈕,游戲回復到初始狀態(tài)。計時器、計數(shù)都歸零,畫布可以觸碰,地鼠開始移動。

      為了讓地鼠固定時間移動一次,計時也需調用“地鼠移動”,如果調試時覺得地鼠移動得太快或太慢,可以改變“計時器_地鼠”的時間間隔如圖9。

      通過畫布的被觸碰事件來處理地鼠被擊中后的過程。XY坐標表示手指觸摸點,用“碰到任意精靈”來檢測是否碰到地鼠。

      先檢查“游戲已經(jīng)開始標志”變量是否為“真”,為真表示游戲進行中。

      如果“任意被觸碰的精靈”為真,表示碰到了地鼠,則命中數(shù)加1,并播放音效。否則,失敗數(shù)加1(圖10)。

      場景2中,我們讓地鼠出現(xiàn)在洞中,用5個圖像精靈表示地洞,這5個圖像精靈的屬性全部默認,我們后面用程序控制它們的外觀,其余組件與場景1類似(圖11)。

      利用列表對5個地洞設置圖片為“hole2.png”。首先創(chuàng)建空列表“地洞”,將5個圖像精靈直接作為列表項;使用左側模塊中“任意組件-任意圖像精靈”中的“設置圖像精靈 圖片”模塊,循環(huán)為將每一項的圖片設為“hole2.png”。

      因為我們需要對多個圖像精靈進行設置不是特指,所以才需要使用“任意組件”中的模塊來泛指所有需要設置的多個組件(圖12)。

      列表中“圖像精靈_洞1”模塊比較特殊,它沒有具體屬性而是代表這個圖像精靈本身,你可以在所有屬性的最后找到它。

      地鼠必須出現(xiàn)在某個洞口,程序要用同樣的XY坐標數(shù)字控制地鼠和地洞,我們可以在保持地鼠和地洞圖片的大小相同前提下,調整圖像中兩者的位置達到需要的效果(圖13)。

      由于畫布中有多個圖像精靈,場景1中的判斷方式就不適用了。需要用“圖像精靈_地鼠被觸碰”來判斷(圖14)。

      點擊開始按鈕,游戲恢復初始狀態(tài)。計時器定時移動地鼠一次。如果點擊返回,則回到“Screen 1”屏幕(圖15)。

      在場景3中,洞口就是背景圖的一部分,我們需要預先將地鼠放在每一個洞口,并記下坐標值。用列表存儲這些坐標值,用隨機數(shù)取列表的項目序號的方式來取出坐標。為了定位準確,需要定位畫布的寬和高(圖16)。

      游戲已經(jīng)比較完善了,現(xiàn)在為游戲添加一個倒計時顯示。每隔1秒,倒計時文本減1,直至為0,游戲結束,并顯示“游戲結束,請重新開始”。由于需要在畫布指定位置顯示文字,在點擊開始時還要清除畫布(圖17)。

      受篇幅所限,我們只介紹了打地鼠游戲程序中的重點部分,剩下的一些還需要你用已經(jīng)掌握的知識自己完善。

      猜你喜歡
      畫布列表精靈
      巧用列表來推理
      商業(yè)模式畫布
      商界評論(2022年12期)2022-03-06 16:43:01
      冬精靈
      學習運用列表法
      海底精靈國
      歡舞的精靈們
      擴列吧
      為什么要在畫布上割一刀?
      藝術品鑒(2019年9期)2019-10-16 08:57:44
      讓鮮花在畫布上盛開
      大師的畫布
      高安市| 元谋县| 灯塔市| 巴南区| 宝兴县| 高尔夫| 沂南县| 秦皇岛市| 乐都县| 乡宁县| 明溪县| 凯里市| 峨山| 札达县| 乌鲁木齐县| 许昌市| 板桥市| 高密市| 民勤县| 五常市| 枣强县| 浦城县| 新野县| 什邡市| 玉溪市| 广平县| 安仁县| 高雄县| 长沙市| 尼玛县| 塘沽区| 宝山区| 株洲市| 木兰县| 孟州市| 泌阳县| 宜宾县| 淮安市| 泾川县| 崇礼县| 华蓥市|