App Inventor 2 指令中文化 ImageSprite 圖片精靈

ImageSprite 元件為一個動畫物件,它可和畫布上,的球和其他 ImageSprite 進行互動。

ImageSprite 元件為一可置放於畫布中的動畫物件,可以回應觸碰和拖拉事件,與其他動畫物件(球或其他 ImageSprite)和畫布邊緣互動,或者它可根據屬性設定來移動。


例如要讓一個 ImageSprite 元件每秒鐘往左邊移動 10 個像素,您可以將 Speed 屬性設為 4,Interval屬性為 1000(毫秒),Heading 屬性為 180(度)和 Enabled 屬性為真,您可以自由調整這些屬性來改變 ImageSprite 的行為。


屬性

Picture
設定 Imagesprite 元件的圖片。

Imagesprite.Picture : 取得 Imagesprite 圖片
Set Imagesprite.Picture 設定 Imagesprite 圖片


Enabled
本項需設為真,Imagesprite 元件才可移動。

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


Interval
Imagesprite 元件的動作頻率,單位為毫秒。

Imagesprite.Interval : 取得 Imagesprite 動作頻率
Set Imagesprite.Interval 設定 Imagesprite 動作頻率


Rotates
本項如果是真,Imagesprite 元件的圖片的 image 會旋轉直到對齊 sprite 的 heading 屬
性為止。反之,即便 sprite 的 heading 改變,image 也不會跟著旋轉。

Imagesprite.Rotates : 取得 Imagesprite 是否旋轉
Set Imagesprite.Rotates 設定 Imagesprite 是否旋轉


Visible
本項需設為真,才能在螢幕上看到 ImageSprite 元件。

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


Heading
ImageSprite 的旋轉方向,單位為度。0 度代表水平指向右(東)方;90 度是朝上(北)方,180 度是左(西)方,270 度是下(南)方。

Imagesprite.Heading 取得 Imagesprite 的旋轉方向
Set Imagesprite.Heading設定 Imagesprite 的旋轉方向


X 
ImageSprite 的 X 座標,0 為畫布左緣。

ImageSprite.X 取得 ImageSprite 的 X 座標
Set ImageSprite.X設定 ImageSprite 的 X 座標


Y 
ImageSprite 的 y 座標,0 為畫布上緣。

ImageSprite.Y 取得 ImageSprite 的 Y 座標
Set ImageSprite.Y設定 ImageSprite 的 Y 座標


Z
ImageSprite 的 Z座標,0 為畫布上緣。

ImageSprite.Z 取得 ImageSprite 的 Z 座標
Set ImageSprite.Z設定 ImageSprite 的 Z 座標


Speed
ImageSprite 每單位時間移動的像素。

ImageSprite.Speed 取得 ImageSprite 每單位時間移動的像素
Set ImageSprite.Speed設定 ImageSprite 每單位時間移動的像素


Width
ImageSprite 的寬。

ImageSprite.Width 取得 ImageSprite 的寬。
Set ImageSprite.Width設定 ImageSprite 的寬。


Height
ImageSprite 的高。

ImageSprite.Height 取得 ImageSprite 的高。
Set ImageSprite.Height設定 ImageSprite 的高。



事件

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


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


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

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


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


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


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

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

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

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

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

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

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

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

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

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


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


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



方法

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

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


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


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


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


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


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