• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 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
    讓鮮花在畫布上盛開
    大師的畫布
    衡南县| 社旗县| 务川| 左贡县| 三原县| 崇明县| 长治县| 周宁县| 那坡县| 依安县| 永善县| 甘肃省| 武陟县| 巴彦淖尔市| 准格尔旗| 伊川县| 青神县| 额济纳旗| 简阳市| 吉林市| 专栏| 曲阜市| 越西县| 惠东县| 汝南县| 清河县| 通海县| 秀山| 桦南县| 镶黄旗| 沛县| 常德市| 太保市| 仙桃市| 陇川县| 津南区| 彝良县| 开远市| 垫江县| 德江县| 年辖:市辖区|