App Inventor 2 指令中文化 Ball 球

Ball 元件為一球型的特殊動畫元件

Ball 元件為一可置放於畫布中的圓形動畫元件,當它被觸碰、拖拉、與其他動畫元件
(ImageSprite 或 Ball)互動時或與畫布邊緣接觸時,它可根據不同事件執行對應動作。

Ball 元件也可依照其屬性自行移動,例如要讓一個 Ball 元件每 500 毫秒往畫布上緣移動4 個像素,您可以設置 Speed 屬性設為 4,Interval 屬性為 500,Heading 屬性為 90(度)和 Enabled 屬性為真,您可以調整這些屬性來改變球的行為。

Ball 元件和 Imagesprite 之間的不同就是 Imagesprite 可以透過上傳圖檔來改變其外觀,但Ball 元件只能調顏色(PaintColor)和大小(Radius)。


屬性

Radius
球的半徑。

Ball.Radius 取得球現在的半徑。
Set Ball.Radius : 設定球的半徑。


PaintColor
球的顏色。

Ball.PaintColor 取得球現在的顏色
Set Ball.PaintColor : 設定球的顏色


Enabled
本項需設定為真,球才可移動。

Ball.Eabled : 取得 Ball 現在是否可使用(boolean)
Set Ball.Eabled : 設定 Ball 為可/不可使用


Interval
球的移動頻率,單位為毫秒。

Ball.Interval 取得球現在的移動頻率
Set Ball.Interval : 設定的移動頻率


Visible
本項需設定為真,球才能顯示在螢幕上。

Ball.Visible 取得球現在是否可被看見(boolean)
Set Ball.Visible設定球為可/不可被看見


Heading
球的移動方向。

Ball.Heading 取得球現在移動方向
Set Ball.Heading : 設定移動方向


X
球的 X 座標。

Ball.X 取得球現在的 X 座標
Set Ball.X設定的 X 座標


Y
球的 Y 座標。

Ball.Y 取得球現在的 Y 座標
Set Ball.Y設定的 Y 座標


Z
球的 Z 座標。

Ball.Z 取得球現在的 Z 座標
Set Ball.Z設定的 Z 座標


Speed
球每單位時間之移動距離,單位為像素。

Ball.Speed 取得球每單位時間之移動距離
Set Ball.Speed設定球每單位時間之移動距離



事件

CollidedWith(component other) 
when Ball.CollidedWith : 當兩個動畫元件(動畫或球)相撞時呼叫本事件,參數 other 代表在本次碰撞中的另一個元件。


Dragged(number startX, number startY, number prevX, number prevY, number currentX, number currentY) 
when Ball.Dragged : 球被拖移時呼叫本事件,參數說明請參閱 Canvas 元件。


Flung(number x, number y, number speed, number heading, number xvel, number yvel)
When Ball.Flung : 當使用者手指滑過 Ball 時回傳(x,y)座標代表使用者所起始的位置

"speed"代表手指在畫布上移動的速度,"heading"表逆時針旋轉的角度,從 0 開始為水平(xvel, yvel)這組值代表X與Y的速度分量


EdgeReached(number edge)
when Ball.EdgeReached : 當球與螢幕邊緣接觸時呼叫本事件,參數 edge 代表球接觸的位置,如下所示:

• north = 1,螢幕上(北)緣

• northeast = 2,螢幕右上(東北)角

• east = 3,螢幕右(東)緣

•southeast = 4,螢幕右下(東南)角

•south = -1,螢幕下(南)緣

•southwest = -2,螢幕左下(西南)角

• west = -3,螢幕左(西)緣

• northwest = -4,螢幕左上(西北)角

請注意相反的方向是彼此互為相反數


NoLongerCollidingWith(component other) 
when Ball.NoLongerCollidingWith : 當兩個動畫元件不再碰撞時呼叫本事件。


Touched(number x, number y) 
when Ball.Touched : 當球被點擊時呼叫本事件。


TouchDown(number x, number y)
When Ball.TouchDown : 當使用者點擊 Ball 時,手指放置在 Ball上,並讓手指留在那裏回傳(x,y)座標代表使用者所點擊的位置。


TouchUp(number x, number y)
When Ball.Up : 當使用者點擊 Ball ,手指離開 Ball 時回傳(x,y)座標代表使用者手指離開的位置。



方法

Bounce(number edge) 
Ball.Bounce : 使球彈跳,就好像真的撞到牆或角落一樣。

參數和 EdgeReached 事件的參數相同,因此我們可以利用 EdgeReached 事件讓球每次碰到畫布邊緣都會彈跳,讓球栩栩如真地自由彈跳。


CollidingWith(component other) 
Ball.CollidingWith : 代表球是否和指定元件發生碰撞。


MoveIntoBounds()
Ball.MoveIntoBounds : 如果球跑出界了,可利用本方法將它抓回界內。


MoveTo(number x,number y) 
Ball.MoveTo : 讓球移動到指定點座標。


PointTowards(component target)
Ball.PointTowards : 讓球轉向對準指定的目標。新的 heading 即為兩個元件中心所構成直線之指向。


PointInDirection(number x, number y)
Ball.PointInDirection : 讓球轉向對準指定的座標