繪圖動畫元件
2016/01/22 謝碧景(c)編製更新
學習目標
學會Drawing and Animation(繪圖動畫)類別中【Canvas(畫布)】元件之設計與應用。
學會【ImageSprite(圖像精靈)】元件之設計與應用。
學會【Ball(球形精靈)】元件之設計與應用。
◆ MIT App Inventor 官方網站 http://appinventor.mit.edu/ → Create apps! (繁體中文)
一、Canvas 畫布元件
Canvas(畫布)元件位於左側元件面板(Palette)之『繪圖動畫(Drawing and Animation)』類別中,畫布如一張白紙可在畫布上繪製點、直線、實心圓、文字等圖形,亦可將畫布的圖形存檔。
App Inventor 2 設計含有動畫或遊戲的程式,需使用Canvas(畫布)配合ImageSprite(圖片精靈)和Ball(球形精靈)元件,且畫布上只允許布置『繪圖動畫』類別之圖片精靈和球形精靈元件。
Canvas(畫布)座標是以畫布左上角(0,0)為基準點,向右為正,向下為正的相對座標。
常用方法如下:
*註:參閱內建指令說明:Drawing and Animation(繪圖動畫)→Canvas(畫布)《摘自: AppInventor中文學習網→指令中文化》
二、ImageSprite 圖像精靈
ImageSprite(圖像精靈)及Ball(球形精靈)元件位於左側元件面板(Palette)之『Drawing and Animation(繪圖動畫)』類別中。
當ImageSprite(圖像精靈)碰撞到Canvas(畫布)的邊界時,會觸發『到達邊界』事件,並使用『反彈』方法將ImageSprite(圖像精靈)反彈。
ImageSprite(圖像精靈)及Ball(球形精靈)是為動畫及遊戲而設計的元件,必須配合Canvas(畫布)元件;兩者幾乎擁有相同的屬性、方法和事件,差別在ImageSprite(圖像精靈)可以外部圖片設定為『背景圖』,且有『旋轉』屬性;而Ball(球形精靈)只能以半徑設定其大小,以畫筆顏色設定單一顏色背景。
(一)常用屬性
ImageSprite(圖像精靈) 或 Ball(球形精靈)元件如下:
(二)常用方法
ImageSprite(圖片精靈) 或 Ball(球形精靈)元件:
練習12:在畫布中央放置一個球,當球被按下,球會以任意方向發出,球若碰到畫布邊緣則反彈,球若碰到畫布下邊界則會發出音效聲( Pop.wav、ball.png)。【重點:學會Drawing and Animation(繪圖動畫)類別中Canvas畫布、ImageSprite圖像精靈等元件的設計與應用。】(檔名:Ball.aia)
1.畫面編排(Designer)頁面:即版面配置頁面,如下圖。
2.程式設計(Blocks)頁面:
語系→繁體中文:
語系→English:
1. 畫面編排(Designer)頁面:
2.程式設計(Blocks)頁面:
(1)建立 Score 變數,紀錄遊戲得分,及程式初始化:首先紅點暫停,蝙蝠飛行速度為20,接著呼叫自訂程序ShowScore 顯示得分。
語系→繁體中文:
(2)自訂程序ShowScore:分數以藍色,字體大小18,在(0,30)位置顯示得分文字;紅點暫停並移至初始位置(160,360),準備進行發射。
(3)當紅點被壓下即以速度50向上方向(註:移動方向→0度、↑90度、←180度、↓270度)發射,當紅點碰到邊界,則暫停,並移至初始位置(160,360),準備再次發射。
(4)當蝙蝠碰到左邊界,則設定背景圖為向右飛翔圖檔;當蝙蝠碰到右邊界,則設定背景圖為向左飛翔圖檔,將蝙蝠反彈,即反向飛翔。此外,蝙蝠若碰到紅點則分數加1,並更新左上方分數。
語系→English:
(三)拖曳事件
拖曳ImageSprite(圖像精靈)元件會觸發被拖曳事件,如下:
*註:參數代表意義:
(起點x座標,起點y座標) 為第一次觸碰的點。
(前點x座標,前點y座標) 為上一次的觸碰點。
(當前x座標,當前y座標) 為目前的觸碰點。
*對圖像精靈元件拖曳,即:
圖像精靈1.X座標 = 圖像精靈1.X座標+(當前x座標 - 前點x座標)
圖像精靈1.Y座標 = 圖像精靈1.Y座標+(當前Y座標 - 前點Y座標)
(四)Z座標屬性
畫布上若有多個動畫元件,會將被拖曳的元件移至最上層,而ImageSprite(圖像精靈)及Ball(球形精靈)元件的Z座標屬性代表該元件的層次,即Z座標越大代表越上層。預設Z座標屬性為1.0,在App Inventor 2會將後建立或較後拖曳的圖像精靈元件放置在最上層。
延伸思考:乒乓球遊戲:當球被按下,球會以任意方向發出,球若碰到畫布邊緣則反彈,遊戲者可左右拖曳移動畫布下方之擋板,當球碰到下方擋板可得10分,球若碰到畫布下邊界則結束遊戲,並將球移至螢幕中央;畫布左上方會記錄得分。模擬器執行畫面如下圖。(專案名稱:PingPong.aia)
◆延伸思考:乒乓球遊戲:當球被按下,球會以任意方向發出,球若碰到畫布邊緣則反彈,遊戲者可左右拖曳移動畫布下方之擋板,當球碰到下方擋板可得10分,球若碰到畫布下邊界則結束遊戲,並將球移至螢幕中央;畫布左上方會記錄得分。模擬器執行畫面如下圖。(專案名稱:PingPong.aia)
遊戲開始:
遊戲紀錄得分