資訊內容
Scratch編程基礎課第十講:碰到邊緣反彈
Scratch編程基礎課第十講:碰到邊緣反彈
上節課我們使用“重復”指令模塊讓小貓移動時,當小貓移動到舞臺邊緣時,小貓將停滯不動的,這時我們想讓小貓轉個方向來回移動,這時我們一般運用“運動”類型下的“碰到邊緣就反彈”指令模塊。
Scratch的指令模塊“碰到邊緣反彈”,其反彈時遵循光線的反射規律--反射角等于入射角。反射角度與角色的方向角之間有如下關系:如果角色的當前方向角為α,當角色碰到的是上下水平邊緣反彈后,其方向角為180-α;當角色碰到的是左右水平邊緣反彈后,其方向角為-α。利用這個規律,在程序中如果要角色碰到某角色或顏色后反彈時,其反彈后的方向就可以用上面的辦法確實,從而使我們的程序中的反彈效果更符合實際情況。
這時我們在腳本程序中加入“碰到邊緣就反彈”指令模塊,來實現小貓來回的走動。
當我們單擊綠旗運行腳本時發現,當小貓運動碰到邊緣反彈回來后,圖像變成倒立的了,這是什么原因呢?這是因為小貓的旋轉方式為“任意旋轉”,這時我們可以將角色“小貓”的旋轉方式屬性改變為“左右翻轉”即可,一般我們會在腳本中利用“將旋轉方式設為……”指令模塊來改變角色的旋轉方式。
我們也可以利用反射定律來實現:當角色碰到的是左右水平邊緣反彈后,其反射方向角為-α。我們先用“偵測”中的“碰到舞臺邊緣”來檢測角色是否碰到了邊緣,再利用“控制”類型下的“如果……那么”指令模塊來確定角色碰到邊緣時(條件為真,也可以用是的,對的來理解)就執行那么后面的模塊讓角色反向,沒碰到邊緣時什么也不做。我們利用“運動”中的“方向”變量取出角色面向的方向,最后利用“運算”中的“相減”求其相反數。
聲明:本文章由網友投稿作為教育分享用途,如有侵權原作者可通過郵件及時和我們聯系刪除
