版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
3它們,得分?!按虻厥蟆钡膭?chuàng)作者是一名AppInventor團(tuán)隊(duì)的成sprite組件的功能(她做到了),不如說(shuō)是當(dāng)EllenSpertus加入公司的AppInventor團(tuán)隊(duì)時(shí),她希望AppInventor也可以用于游戲的開(kāi)發(fā),因此她自告奮勇地承擔(dān)起sprites的實(shí)現(xiàn)任務(wù)。sprite原本用來(lái)表示神話中的角色,如仙女、妖精等,到20世紀(jì)70年始出現(xiàn)在計(jì)算機(jī)界,用來(lái)代表那些能夠在電腦屏幕上移動(dòng)的圖像(在電子游戲中)。Ellensprite是在20世紀(jì)80年代早期,她曾經(jīng)參加電腦并使用TI99/4編sprites以及“打地鼠”游戲上所做的努力,受到了雙重懷舊情可以查看Android版“打地鼠”游戲的?!敬擞蒞olber教AppInventor錄制的,但同樣可以有助于理解開(kāi)3-1學(xué)習(xí)目3-1所示的“打地鼠”如果手指觸碰到地鼠,則讓設(shè)備,顯示中數(shù)加1,地鼠隨機(jī)如果手指直接觸摸到屏幕但沒(méi)點(diǎn)地鼠,則顯示失敗數(shù)加點(diǎn)擊“重新開(kāi)始”學(xué)習(xí)內(nèi)ImageSpriteCanvasImageSpriteClockspriteSound組件:地鼠時(shí)產(chǎn)生ButtonProcedures準(zhǔn)備開(kāi)登陸AppInventor,開(kāi)始新項(xiàng)目“MoleMash”,將屏幕標(biāo)地鼠mole.png。方法:控制鍵+單擊(Mac)或單擊右器組件列表下方的Media部分,單擊“Uploadfile…”,找到剛的文mole.pngAppInventor中。設(shè)計(jì)組創(chuàng)建“打地鼠”CanvasImageSprite組件:用來(lái)顯示地鼠,隨機(jī)移動(dòng),并具有觸感Sound組件:當(dāng)?shù)厥蟊挥|摸到時(shí),發(fā)出Label組件:用來(lái)顯示“”、“”HorizontalArrangementsLabel組件,使組件的布局Button組件:用來(lái)將命中及失敗次數(shù)歸零(重新開(kāi)始游戲Clock組件:使地鼠每秒鐘隨機(jī)移動(dòng)一次。3-1顯示了應(yīng)用中用到的全部組件。3-1“打地鼠”應(yīng)用中的全部組件列組件類組件種命作DrawingandImageSprite的容Drawingand用戶點(diǎn)擊的目User重新設(shè)置得User控制地鼠的移動(dòng)頻當(dāng)?shù)厥蟊粫r(shí)User顯示文字“:User顯示次放置HitsLabelUser顯示文字“失敗Userl顯示失敗次放置MissesLabel設(shè)置活動(dòng)組Palette->DrawingandAnimation->Canvas組件,拖入預(yù)覽窗Canvas1,設(shè)置Width屬性為“Fillparent”,即與Height屬性為300像素;Palette->DrawingandAnimation->ImageSpriteImageSpriteCanvas1rename,改名為“Mole”Picturemole.png;Palette->UserInterface->ButtonButton組件放在Canvas1下面,改名為“ResetButton”,并設(shè)置其Text屬性為“重新開(kāi)Palette->UserInterface->ClockClock組件,它將落在預(yù)Palette->Media->SoundSound組件,它也將落在“非可視現(xiàn)在組件設(shè)計(jì)器看起來(lái)應(yīng)該如圖3-2(地鼠的位置有可能不同)3-2組件設(shè)計(jì)器視圖中的所有“活動(dòng)”Label組啟動(dòng)”HorizontalArrangement1的默認(rèn)名稱;Palette->UserInterfaceLabelHorizontalArrangement1中LabelHitsLabelText屬性為“”(確保將右側(cè)Label改名為HitsCountLabel,設(shè)置其Text屬性為HorizontalArrangement1下面;LabelHorizontalArrangement2LabelMissesLabelText屬性為“”(確保LabelMissesCountLabelText屬性為“0”。3-3。3-3組件設(shè)計(jì)器視圖中“打地鼠”為組件添加行Canvas1上隨機(jī)移動(dòng)一次;②用戶拍打這只移動(dòng)在迄今為止完成的應(yīng)用中,曾經(jīng)調(diào)用過(guò)內(nèi)置過(guò)程,如oPurr中的Sound1.Vibrate()。假如AppInventor中有一個(gè)內(nèi)置過(guò)程,可ImageSprite移動(dòng)到屏幕上的某個(gè)隨機(jī)位置,那豈不是很好?可Procedures抽屜中,需要時(shí)可以隨時(shí)調(diào)用它。MoveMole過(guò)Android的圖形定位機(jī)制。(Screen)x(水平)坐標(biāo)和y(垂直)坐標(biāo)織成的網(wǎng)格,其左上角的(x,y)坐標(biāo)為(0,0)。x坐標(biāo)向右為增大,y3-4ImageSpritex、y屬性表示x和y值都是3-4Mole的位置——坐標(biāo)、高度和寬度信息,x坐標(biāo)及寬度以藍(lán)色表示,y坐標(biāo)和高度以橙色表示x和y的最大值,這要用MoleCanvas1Width(寬度)Height(高度)屬性。(地鼠的Width和Height屬性值與上傳的的大小相同,而在Canvas1300像素,寬度為“Fillparent”,即等于它的“父”容器——屏幕的寬度。)如果地鼠的寬度是36像200Mole的x0(靠近屏幕左側(cè)邊緣),164(200-36Canvas1.Width-Mole.Width),Mole不超出屏幕的右側(cè)邊緣。同樣,Moley0Canvas1.Height-Mole.Height。3-5MoveMole過(guò)程,圖中標(biāo)有詳細(xì)注釋(可以有選Mole,x0Canvas1.Width-Mole.Width的范圍內(nèi)選擇,同樣,y0Canvas1.Height-Mole.HeightMathrandominteger生成一個(gè)隨機(jī)整數(shù),將“from”10,同樣修改“to”3-53-5AMoveMole過(guò)程,用于將Mole放在一個(gè)隨機(jī)的位置上ProceduresProcedures得到toprocedureProcedures抽屜中點(diǎn)擊toprocedure塊(result的to設(shè)置過(guò)程名稱:?jiǎn)螕魤K中的文字“procedure”并輸入MoleMolecallMole.MoveTo塊中“do”x和yMole的x坐標(biāo):如前所述,x0Canvas1.WidthMole.Width之間:Mathrandomintegerfrom塊,將左側(cè)插頭(突起)callMole.MoveTo塊的“x”插槽;點(diǎn)選from1100DelDelete鍵,或直接拖入箱;Math抽屜,將一個(gè)減法塊(-)拖入toCanvas1抽屜,向下滾動(dòng)直到看見(jiàn)Canvas1.BackgroundColor,將其拖入到減法塊“-”的左側(cè),然后從BackgroundColorWidth選項(xiàng);MoleMole.EnabledEnabled塊所Width選項(xiàng),并將它插入到“-”右側(cè)的插槽中;按類似步驟設(shè)定y0Canvas1.HeightMole.Height的隨機(jī)整數(shù);對(duì)圖3-5A(行內(nèi)輸入)或3-5B(外展輸入)檢查操作結(jié)果randomintegerfromto塊的“externalinputs”(外展輸入)方式:右鍵點(diǎn)擊random塊,選擇列表第三項(xiàng)externalinputs;如果想恢復(fù)行內(nèi)輸入,random塊,選擇inlineinputs。3-5BMoveMole過(guò)程,用于將Mole放在一個(gè)隨機(jī)的位置在應(yīng)用啟動(dòng)MoveMole過(guò)MoveMole過(guò)程,現(xiàn)在該調(diào)用它了。對(duì)于程序員來(lái)說(shuō),最Screen1.Initialize就是專為這個(gè)目的而設(shè)計(jì)的:Screen1Screen1.InitializeProcedurescallMovMole塊(這很有趣:你自己創(chuàng)建了一個(gè)新塊,不是嗎)Screen1.I,如-6所示。3-6MoveMole每秒鐘調(diào)用MoveMole過(guò)ClockClock1的TimerInterval1000(毫秒),1秒,我們稱每秒一Clock1.Timer塊中,無(wú)論設(shè)Clock1ProcedurescallMoveMoleClock1.Timer塊3-7所示。3-7計(jì)時(shí)器開(kāi)始計(jì)時(shí)后,每次心跳(每秒)MoveMoleClock1TimerInterval記錄Label0HitsCountsLabel和一次,或失敗一次(直接拍打到屏幕)Label中的數(shù)字增Canvas1.TouchedCanvas被觸摸到,并記錄了觸摸點(diǎn)的x和y坐標(biāo)(我們不必關(guān)心),(這是我們關(guān)心的)3-83-8Canvas1時(shí),讓命中(HitsCountLabel)3-8canvassprite是否也被碰到。spriteMoleMole,則HitsCountLabel.Text中的數(shù)字+1,否則,MissesCountLabel.Text中的數(shù)字+1(spritetouchedSpritefalse)。點(diǎn)擊Canvas1抽屜,并拖出ControlIfelse塊(先拖入ifelse塊:點(diǎn)擊ifelseif塊),并放Canvas1.Touched塊中;Variablesgetifelse的if插槽內(nèi),選擇下拉菜單中的touchedSpritewhenCanvas.TouchedtouchedSpritegettouchedSprite塊;按照我們的設(shè)想,如果if檢測(cè)成功(Mole被觸摸到),HitsCountLabel.Text“then”Math抽屜,拖出一個(gè)加號(hào)(+),將其放在“to”HitsCountLabelHitsCountLabel.Text塊到“+”的左Math抽屜,并拖動(dòng)一個(gè)“0”塊到“+”01ifelse塊的“else”MissesCountLabel4過(guò)程計(jì)算機(jī)科學(xué)的重要之一,就是命名然后調(diào)用一組指令(如件,沒(méi)有人了解所有的細(xì)節(jié),而只需要了解接口(例如,踩下制 和粘貼代碼相比,過(guò)程抽象的優(yōu)勢(shì)在于(或功能),如確保地鼠不連續(xù)出現(xiàn)在同一AppInventor暫時(shí)不支持這項(xiàng)功能。)(“分而治之”)給過(guò)程一個(gè)有意義名,將有助于提高代碼的可讀性,更易被別(或一個(gè)月后的自己)21章。重置ResetButton.ClickHitsCountLabel.TextMissesCountLabel.Text03-93-9Reset按鈕讓命中次數(shù)(HitsCountLabel)此處提供一個(gè)技巧,來(lái)快速建立ResetButton.Click的處理程序:在工作區(qū)直接輸入0并回車,將生成數(shù)字塊0,等同于從Math抽屜中添加觸摸地3-103-10碰到地鼠時(shí)讓設(shè)備短暫振動(dòng)(100毫秒Sound1.Vibrate完整MoleMash應(yīng)3-11MoleMash3-11MoleMash改MoleMash添加另一個(gè)ImageSprite,如一朵花的:用戶不許碰到它,如果碰用ContactPicker組件從用戶的 簿中選擇,來(lái)替代地鼠圖小Canvasx表示水平方向(0到Canvas.Width-1),y表示垂直方向(0到底部的Canvas.Height-1)Canvas的高度和寬度中減去某個(gè)ImageSpritesprite在畫布上完整地CanvasI
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 居家養(yǎng)老食堂合同(2篇)
- 2025年度O2O電商代運(yùn)營(yíng)團(tuán)隊(duì)培訓(xùn)與支持合同3篇
- 二零二五年度酒吧服務(wù)員全職雇傭合同規(guī)范文本3篇
- 二零二五年度生物科技園開(kāi)發(fā)與管理承包合同2篇
- 二零二五版綠色環(huán)保辦公樓房地產(chǎn)買賣代理合同3篇
- 基于二零二五年度的采購(gòu)合同2篇
- 二零二五年攝影攝像與后期制作合同2篇
- 二零二五版板材模板設(shè)計(jì)與制造技術(shù)服務(wù)合同3篇
- 二零二五年度電力系統(tǒng)用變壓器安裝及節(jié)能降耗合同3篇
- 二零二五版土地購(gòu)置與綠色生態(tài)農(nóng)業(yè)合作合同3篇
- 銀行會(huì)計(jì)主管年度工作總結(jié)2024(30篇)
- 教師招聘(教育理論基礎(chǔ))考試題庫(kù)(含答案)
- 2024年秋季學(xué)期學(xué)校辦公室工作總結(jié)
- 上海市12校2025屆高三第一次模擬考試英語(yǔ)試卷含解析
- 三年級(jí)數(shù)學(xué)(上)計(jì)算題專項(xiàng)練習(xí)附答案集錦
- 長(zhǎng)亭送別完整版本
- 《鐵路軌道維護(hù)》課件-更換道岔尖軌作業(yè)
- 股份代持協(xié)議書簡(jiǎn)版wps
- 職業(yè)學(xué)校視頻監(jiān)控存儲(chǔ)系統(tǒng)解決方案
- 《銷售心理學(xué)培訓(xùn)》課件
- 2024年安徽省公務(wù)員錄用考試《行測(cè)》真題及解析
評(píng)論
0/150
提交評(píng)論