2017年12月22日 星期五

Scratch小教室(入門) - 第6課 : 拋物線跳


學習目標 : 讓Scratch小貓能夠在跳的時候向前進
預估時間 : 55min
使用模組 : (1) faya brickNano
                 (2) faya搖桿模組
                 (3) faya觸控開關模組
工具 : 積木組 / 積木底板


=====================相關知識====================
第5課的重力跳讓小貓跳起來自然許多,但僅限於垂直跳躍並且垂直落地,我們在這個課程繼續修改一點程式,讓小貓能夠隨著搖桿移動的方向進行跳躍的功能,我們將此動作稱作拋物線跳法好了。

要怎麼達拋物線跳的功能呢?

第5課中,記不記得在重力跳往上跳躍的過程中,垂直移動距離愈來愈短,往下降落的過程中,垂直移動距離愈來愈長。要達到拋物線的移動功能,我們希望垂直移動的同時,也能達到水平移動,但由於小貓移動的時只能一次指定垂直或水平其中的一種,因此我們就讓小貓輪流垂直和水平移動,當速度很快時,會達到拋物線跳躍移動的效果。

以下兩張圖一為往上跳躍過程,一為落下過程,可以明顯發現和第5課不同的地方在於每次Y移動後,多了固定距離X軸的移動。

小貓上升過程:


小貓下降過程:

乍看之下小貓好像需要一直移來移去很複雜,事實上這只是一瞬間的事情,讓電腦來處理這類重覆的指令是很簡單的,讓我們看看怎麼利用Scratch程式完成吧!

======================重力跳=====================
程式:L6_curve_jump.sb

我們只要針對第5課重力跳的部分修改程式就可以了,接下來的介紹都針對此區局部放大。


我們首先完成朝著右方達到曲線跳的程式:


(1) 加入偵測要趕是否向右移動的程式,有的話向右移動10步
(2) 根據曲線跳要過程的邏輯,我們把這段向右移動的動作直接擺在垂直(Y軸)移動之後
有沒有發現程式很簡單

看看結果:


我們從執行結果發現跳出去的距離太遠了,稍微修改一下程式,首先把移動距離10步改成5步,跳躍起來的水平距離看起來比較合理。接著我們舉一反三,加入另一段監控向左移動的程式,讓小貓也能夠朝左方達到拋物線跳的功能。


看看結果:


修改後的程式小貓跳躍起來的距離看起來合理許多,另外朝左或朝右跳也沒有問題了,大家有沒有注意到當小貓在空中的時候,如果搖桿變換了水平方向,牠會立刻往另一方向移動,小貓可以達到的動作愈來愈像超級瑪利兄弟了。

======================心得======================

我們在這一課利用電腦強大快速的運算能力,讓小貓表現出拋物跳功能,大家有沒有發現小貓的動作愈來愈像超級瑪莉了?  我們在下一課會讓小貓擁有蹲坐的功能。

<< 第5課 : 重力跳
>> 第7課 : 蹲坐
====================================
fayalab 粉絲團

沒有留言:

張貼留言