hello电媳,同學(xué)們蒂阱,上節(jié)課我們學(xué)習(xí)了如何在scratch環(huán)境下锻全,設(shè)置角色的名稱(chēng)和變換角色的大小,大家還記得嗎蒜危,我們創(chuàng)建了一個(gè)叫:『淘淘』的小松鼠是不是虱痕,今天我們要學(xué)習(xí)一下如何計(jì)算淘淘的起跳高度和模擬重力加速度的效果睹耐,讓淘淘從河的這一邊跳到那一邊辐赞,let's go, 我們開(kāi)始吧
首先硝训,我們看一下這節(jié)課要學(xué)習(xí)的知識(shí)點(diǎn)响委,
1、動(dòng)作區(qū):將x坐標(biāo)增加窖梁、將y坐標(biāo)增加代碼塊
2赘风、偵測(cè)區(qū):碰到顏色代碼塊
我們最終的目標(biāo)是想讓小松鼠跳過(guò)河并且不能跳得太遠(yuǎn),那樣會(huì)跳出舞臺(tái)區(qū)纵刘,也不能跳得太近邀窃,跳得太近就掉到河里了,淘淘跳躍的距離需要精確的計(jì)算假哎,我們先來(lái)拆解一下我們要解決的三個(gè)問(wèn)題瞬捕,
1鞍历、淘淘跳躍效果實(shí)現(xiàn)
2、起跳的位置選擇
3肪虎、跳躍的距離計(jì)算
淘淘所在舞臺(tái)區(qū)的任意一個(gè)位置都對(duì)應(yīng)唯一的一個(gè)坐標(biāo)劣砍,這個(gè)知識(shí)點(diǎn)我們前面的課程里已經(jīng)介紹過(guò)了,那么我讓淘淘的y坐標(biāo)增加10次扇救,再讓淘淘的y坐標(biāo)減少10次刑枝,這樣淘淘是不是就完成了原地跳躍的效果呢,ok迅腔,那我們來(lái)試一下装畅,
我們先從動(dòng)作區(qū)里找到“將y坐標(biāo)增加10”的代碼塊,點(diǎn)擊鼠標(biāo)左鍵選中钾挟,不要松開(kāi)鼠標(biāo)左鍵洁灵,這是這個(gè)代碼塊就可以跟隨鼠標(biāo)移動(dòng)了,我們將這個(gè)代碼塊拖動(dòng)到左邊的腳本區(qū)
重復(fù)上面的操作10次掺出,再?gòu)目刂茀^(qū)里拖動(dòng)等待1秒的代碼塊出來(lái)徽千,再拖動(dòng)“將y坐標(biāo)增加10”的代碼塊10次,將這些代碼組合在一起汤锨,請(qǐng)看下圖效果
大家注意一下双抽,“將y坐標(biāo)增加10” 這個(gè)代碼里的10是可以更改的,我們讓y坐標(biāo)增加可以寫(xiě)正數(shù)闲礼,同理我們想讓y坐標(biāo)減少就可以把這個(gè)數(shù)字改成負(fù)數(shù)牍汹,所以上面的代碼老師把等待后的代碼塊里的數(shù)字改成了負(fù)數(shù),讓淘淘的y坐標(biāo)回到初始值柬泽,ok慎菲,上面這段代碼我們只要雙擊鼠標(biāo)左鍵就可以看到跳躍的運(yùn)行效果了,
是不是簡(jiǎn)單的跳躍我們就實(shí)現(xiàn)了跋遣ⅰ露该?
下面我們來(lái)解決第二個(gè)問(wèn)題,什么情況下觸發(fā)淘淘的起跳條件呢第煮?我們把淘淘移動(dòng)到這個(gè)位置解幼,這時(shí)淘淘長(zhǎng)長(zhǎng)的耳朵碰到了藍(lán)色的河面了,
我們使用角色碰到顏色
? 這個(gè)代碼塊包警,這個(gè)積木塊的意思是:如果角色碰到顏色的情況下撵摆,需要角色做哪些事情,這是一個(gè)條件觸發(fā)的機(jī)制害晦,這里我們使用碰到藍(lán)色河面作為觸發(fā)淘淘起跳的條件特铝,代碼實(shí)現(xiàn)是這樣的,
鼠標(biāo)懸停在碰到顏色代碼塊的綠色框里點(diǎn)擊左鍵,這時(shí)鼠標(biāo)指針會(huì)變?yōu)樾∈值臓顟B(tài)鲫剿,移動(dòng)鼠標(biāo)位置則這個(gè)顏色框里的顏色會(huì)跟著鼠標(biāo)移動(dòng)而發(fā)生變化痒芝,我們把鼠標(biāo)移動(dòng)到藍(lán)色河面上時(shí),這個(gè)顏色框?qū)⒆優(yōu)楹退{(lán)色河面一樣的顏色牵素,點(diǎn)擊一下鼠標(biāo)左鍵則碰到顏色的條件就設(shè)置好了
跳躍的條件設(shè)置好了严衬,接下來(lái)我們來(lái)看一下需要跳躍的距離怎么計(jì)算,
淘淘從起始位置x坐標(biāo)為4笆呆,移動(dòng)到終點(diǎn)位置x坐標(biāo)為204请琳,一共移動(dòng)了200個(gè)點(diǎn),則我們可以這樣設(shè)計(jì)代碼赠幕,讓淘淘在起跳拋物線的前半部分y坐標(biāo)上升10次俄精,后半部分下降10次相同的值,則y坐標(biāo)回到原點(diǎn)榕堰,淘淘的y坐標(biāo)每變化一次竖慧,x坐標(biāo)增加10個(gè)點(diǎn),淘淘的y坐標(biāo)回到原點(diǎn)的時(shí)候x坐標(biāo)增加了20次逆屡,則x坐增加了200個(gè)點(diǎn)圾旨,達(dá)到我們預(yù)期的效果了,下面來(lái)看一下代碼實(shí)現(xiàn)魏蔗,
這里為了模擬重力加速度更加真實(shí)砍的,老師在代碼里使用了“起跳高度”這個(gè)變量,變量的概念和使用我們后面的課程再詳細(xì)說(shuō)明莺治,老師的代碼里使用到了一個(gè)循環(huán)語(yǔ)句“重復(fù)執(zhí)行直到觸發(fā)某一條件再停止”廓鞠,這個(gè)循環(huán)的意思是在滿足x坐標(biāo)大于204之前重復(fù)執(zhí)行x坐標(biāo)增加10和y坐標(biāo)增加“起跳速度”這個(gè)變量的值的動(dòng)作,起跳速度這個(gè)變量的值在不斷減小谣旁,所以起跳高度就形成了一個(gè)拋物線的效果床佳,我們使用循環(huán)可以避免在我們代碼里羅列太多相同的代碼,比如我們解決跳躍的問(wèn)題時(shí)就拖動(dòng)了10次相同的代碼榄审,小朋友們砌们,我們現(xiàn)在知道了循環(huán)結(jié)構(gòu)是不是就有更優(yōu)化的方案了呢?瘟判,好了怨绣,我們今天的課程結(jié)束了角溃,同學(xué)們拷获,你們理解了嗎?