資訊內容
少兒編程Scratch第九講:小貓跳跳-較完整的跳躍運動
目的
目的:跳躍是很常用的游戲功能。不少游戲都是通過跳動前進、躲避障礙物,獲取得分。這一次我閱讀了Scratch上關于跳躍的說明和舉例。以此為藍本,由淺入深,練習各種跳躍運動。
適用對象:適合有一定編程和數學基礎的用戶,例如一二年級學生。通過之前約10次的練習,一年級學生能夠獨立完成本課程中多數功能,或者在家長指引下完成練習。
本游戲共享在:https://scratch.mit.edu/projects/216224542/
實現方式
本程度使用簡單的貓咪角色,同時在屏幕最下方放置一紅線,即地板。通常的跳躍是要在一定的物體上才能跳躍,例如地面、某個運動的擋板上。空中的跳躍一般稱為飛翔。當然開始的時候,也可以隨意跳動,并且跳動的速度完全相同。在現實世界中,人跳起來的時候,因為受到重力的影響,速度會逐漸減小直到為零,然后落下,落下的過程中,速度不斷增加,達到地面的時候,停止。除了垂直的跳動以外,還可能是往前躍進的跳動(跳遠)。
參考文檔:https://en.scratch-wiki.info/wiki/Jumping
少兒編程-Scratch
·?????少兒編程Scratch第八講:變量和太空大戰(2018/4)
·?????少兒編程Scratch第七講:字母雨打字練習(2018/3)
·?????少兒編程Scratch第六講:抽獎游戲之造型、隨機和廣播(2018/2)
·?????少兒編程Scratch第五講:練習一坐標和移動(2018/1)
·?????少兒編程Scratch第四講:射擊游戲的制作,克隆的奧秘(2018.01)
·?????少兒編程Scratch第三講:宇宙大戰.槍戰游戲(2018.01)
·?????? 少兒編程Scratch第二講:奇妙的接球小游戲(2018.01)
·?????? Scratch第一講:Scratch完美的初體驗(2018.01)
下面描述幾種跳動方式。
一、最簡單的跳躍方式
點擊數字0,小貓跳動一定的距離,然后停留一小會,落下。上升和下降都是“瞬間位移”的,即立即改變位置。并且在任何地方都可以跳動。
測試這種跳躍方式,然后提出問題:我們的實際跳動果真是如此的嗎?是瞬間跳到最高處嗎?當然明顯不是這樣,因此需要繼續改進。
二、勻速跳躍
實現往前跳躍,即上前方跳動,并且落下。勻速上升和下降。
-
程序開始時,將小貓咪移動到左下角,等待跳動。
-
點擊上箭頭,小貓跳動往上跳動,跳動過程中,循環16次,每次Y軸增加10,同時X軸增加2。這實現了勻速的上升跳躍,和之前的“瞬間位移”好了一些。讓小孩思考人的實際跳躍運動是怎么樣的。往前跳躍是小孩想出來的,這比較符合實際。
-
跳到最高點,可以停留零點幾秒,然后開始下降。小孩提出想法,到達最頂端后翻一個跟斗,因此重復執行10次,每次右轉36°,即旋轉360度。
-
下降過程和上升過程相同,循環16次,每次Y軸增加-10,同時X軸增加2。開始的時候設置為X軸增加-2,下降過程中,又回到原點了。這不符合常理。小貓在跳動過程中,一直往前走,因此X軸一直都在增加。
-
小貓往右跳動,快到邊緣時重新返回到最左邊,否則就跳出屏幕了。這個功能很早就熟練了。
-
跳動之前和落地之后,更換了一次造型。如果造型合適,能夠實現落下后下蹲然后站起的效果。
改進:如果熟練,這里也可以引入變量,例如通過循環次數、單詞循環Y軸位移變量,決定跳躍的高度。
三、勻速跳躍2
實現往前跳躍,即上前方跳動,并且落下。勻速上升和下降,但上升和下降的速度不同。
按下數字1,實現跳躍,實現方法同上,僅是下降的時候速度比上升的速度低,差異較大時能感覺到漂浮下降的過程。同時小孩選擇了,反向翻跟斗。這個翻跟斗是小孩自己想出來的,做出來以后,讓三歲小妹妹玩了玩,引起了一片笑聲。
?
四、從地面上勻速跳躍
功能和第二類似,但增加了地面的判斷,只有在地面上才能跳躍,在空中不能跳躍。
-
增加一條紅線的角色,放在屏幕最下方,模擬地面。即小貓只有碰到這條紅線才允許跳躍。
-
點擊數字2,同時判斷是否碰到某個角色或某個顏色,只有滿足這兩個條件才能跳躍,否則不能跳躍。在“偵測”中,有碰到某個角色,或碰到某種顏色的指令。
-
為了測試離開地面后小貓無法跳動,增加上移和下移的操作,按A上移,按Z下移。測試的時候,將按鍵1的無地板判斷的跳躍和按鍵2帶地板判斷的跳躍進行比較。
五、加速跳躍(考慮重力)
功能和第二類似,但更改了速度。小貓在上升跳躍過程中,速度逐漸減小,直到速度為零。到達最高點以后,下降,速度逐步加快。因此看起來,就比較符合現實場景了。
?
-
為了便于控制,引入了y軸的速度變量。
-
點擊數字3,跳動時,速度設定為15,即每次Y軸增加15,然后Y軸速度增加-0.5.重復執行30次。到達頂部的時候速度已經為零。
-
到達頂部的時候,停留0.1秒。
-
下降的時候,將Y的速度增加0.5,即Y坐標的每次增加值為0.5的倍數。實現加速下降的功能。
六、兩次連續跳躍(考慮重力)
功能上面帶重力的跳躍類似,只是這里實現了連續跳兩次的功能,每次的高度相同。
?
-
為了便于控制,程序塊-積木。在積木中實現跳躍代碼,帶重力功能。這樣能夠減少主程序的代碼量。
-
點擊數字4,調用一次積木,然后接著再調用一次積木。實現兩次跳躍。
七、多次連續跳躍(考慮重力,高度逐步降低)
功能與上面兩次跳躍類似,這里實現了多次跳躍的功能,每次的高度逐步降低。通過這種方式,能夠模擬扔皮球的動作。即往上前方拋球,球往前彈起,然后落下,高度逐漸降低。
?
-
依然使用了積木塊,增加了高度的變量。
-
-
點擊數字5,設定跳躍高度,然后調用一次積木,然后再設置一個跳躍高度,再調用一次積木。這里跳了五次,高度從30,20,10,5,3。如果水平好一些,可以多加一個循環進行處理。
上面列了7種跳躍方式,通過這節課,對跳躍應該比較好理解了。
?
聲明:本文章由網友投稿作為教育分享用途,如有侵權原作者可通過郵件及時和我們聯系刪除
