App Inventor學習記錄 23,球形精靈(ball)移動、碰撞、反彈等移動方式記錄

app inventor它有一些先天上的限制在。做有趣的小遊戲是可以的,但要做好一點的話,就不建議使用 app inventor。

講到做遊戲,這次就來記錄一下 app inventor遊戲元件之一、球形精靈的一些使用方法。
App Inventor學習記錄 23,球形精靈(ball)移動、碰撞、反彈等移動方式記錄


這次,主要著重在介紹球形精靈的移動方式的介紹。
所以畫面就很簡單。
1個畫布元件。
3個球形精靈元件。
1個計時器元件


全部的程式碼是這樣子的。


第 1部份的程式碼說明:

當球形精靈被碰觸的時候 (Ball1.TouchDown):
把球形精靈 1的速度 (Ball 1.Speed)設定為 20。


第 2部份的程式碼說明:

當球形精靈 2被拖曳的時候 (Ball 2.Dragged)
把精形精靈 2的 x座標,設定成目前手指頭的 x座標 (get currentX)
把精形精靈 2的 y座標,設定成目前手指頭的 y座標 (get currentY)


第 3部份的程式碼說明:

這部份跟第 2部份是一樣的,只是把球形精靈 2變成球形精靈 3。


第 4部份的程式碼說明:

當球形精靈 1到達邊界的時候 (Ball 1.EdgeReached),也就是球碰到手機畫面的四個邊的時候:
這個要分成 5種情況來講。
1、呼叫球形精靈 1轉到指定方向 (call Ball1.PointInDirection)
讓球往那一個點的位置前進,這裡我因為要讓球移動的方向是隨機的,所以我設定的是 random的參數。如果要往特定點移動的話,就設定成特定值,如 x設定成 10,y也設定成 10。那麼球碰到畫面的邊緣的時候,就往 (10,10)這個座標移動。

2、呼叫球形精靈 1移動到邊界 (call Ball1.MoveIntoBounds)
這個比較少用,之後有用到的話再介紹

3、呼叫球形精靈 1轉到對準指定目標 (call Ball1.PointTowards)
這個是讓球形精靈往什麼目標移動,target,就是拿來放目標,我這裡放的是球形精靈 2,所以在球形精靈 1碰到邊界後,會往球形精靈 2的地方反彈過去。

4、呼叫球形精靈 1反彈 (call Ball1.Bounce)
這個就是讓球形精靈只要一碰到邊緣的話,就會反彈。
這裡的 edge其實可以設定碰到那一 個邊緣的時候才反彈,這裡把 edge的值代入 get edge,這代表不管是碰到那一個邊緣,球形精靈都會反彈。

5、呼叫球形精靈 1移動到指定位置 (call Ball1.MoveTo)
這個是球形精靈移動到特定點的做法。一樣,我想讓球形精靈在隨機點出現,所以我用的是 random,如果要在特定點出現的話,就設定成特定值,如 x設定成 10,y也設定成 10。那麼球碰到畫面的邊緣的時候,就出現 (10,10)這個座標。


這麼多的功能其實我們也不會讓它全部都發生作用。

所以我們在不想讓它發生作用的程式上按滑鼠右鍵,點擊 Disable Block,把該功能暫停。這樣的話,那一行程式就不會起作用。


同樣的,我們也可以在已經被關閉的程式上按鼠右鍵,點擊 Enable Block,把該功能啟動。

這個小技巧,我很常用到在 debug的時候,有時候真的是找不到問題點的時候,就把一些功能關一關,一個一個的找過去。這次用來演示一下球形精靈的移動方式,用這個方法也是可以的。


第 5部份的程式碼說明:

當球形精靈 1碰撞到其它東西的時候 (Ball1.CollidedWith)。
這裡的 other指的就是其它東西。
這裡我加入流程判斷式
如果 get other的值等於球形精靈 2的時候,
把球形精靈 2的速度 (Ball 2.Speen)設定為 20。
把球形精靈 2的指向 (Ball 2.Heading)設定為球形精靈 1的指向。
把球形精靈 1的指向 (Ball 1.Heading)設定為往相反的方向反彈出去。
把計時器1啟動 (Clock1.TimerEnabled)


第 6部份的程式碼說明:

如果球形精靈 2到達邊界的時候,就讓它反彈。


第 7部份的程式碼說明:

當計時器 1在計時的時候:
如果球形精靈 2的速度 (Ball2.Speed)大於 0的話
就把球形精靈 2的速度 (Ball2.Speed),設定成每秒減 2
不然的話,就把計時器 1給關閉。(指的是速度等於0的時候)


用 app inventor做遊戲的時候,一定少不了的元件,就是畫布、球形精靈以及圖像精靈。其中球形精靈的運動方式和圖像精靈的設定是差不多的,用球形精靈來介紹,在一開始會比較容易懂。

這一篇寫起來真累人,常常有不知道該怎麼寫的情形。建議大家可以參考一下影片
App Inventor學習記錄 23,球形精靈(ball)移動、碰撞、反彈等移動方式記錄

這一次就只是演示一下球形精靈的幾種移動方式,這幾種移動方式熟悉了之後,接著就是把它們組合在一起的方式。
這次的 aia檔的下載連結如下:
點我下載 N0.23_Ball.aia

之前介紹過的一些 appinventor的使用記錄,都整理在下面這個頁面上了。
APP INVENTOR學習記錄及資源整理頁面

發表迴響