在家教孩子學(xué)編程(6):小貓追球游戲
在家教孩子學(xué)編程(6):小貓追球游戲
關(guān)注?▲帶娃玩轉(zhuǎn)人工智能?
我們一起帶孩子玩轉(zhuǎn)人工智能!
小貓追球游戲:
我們在一個空地上扔了一個小球,小球滾動的時候被小貓看到了,小貓就去追著球玩耍,球滾到哪里,小貓就追到哪里。
要完成這樣一個游戲項(xiàng)目,首先,要了解到的是我們編程思維主要就是三大要點(diǎn):一、邏輯;二、框架;三、拆解。
那我們要怎么來用Scratch做這樣一個游戲呢?
游戲,就是一個框架,拆解開來就是三塊:誰,在哪里,發(fā)生了什么。
繼續(xù)拆解:誰,就是角色;在哪里,就是舞臺背景;發(fā)生了什么,就是積木塊的編程,如何去控制角色移動。
我們在空地上扔了一個小球,小球會隨機(jī)滾動到一個地方,舞臺上還有一只小貓,小貓看到滾動的小球以后,于是就去追著球玩耍。球滾一下,小貓就去追著球跑。
小貓追球游戲:里面的角色有球、小貓;在哪里:就是舞臺背景,在一個空地上,這里我們可以不添加舞臺背景當(dāng)做空地;發(fā)生了什么:有一個小球隨機(jī)滾動,也就是隨機(jī)移動位置,然后被小貓看到了,小貓去追著球跑,小球移動到哪里,小貓就追到哪里。
這樣拆解分析完了以后,我們就開始拖動積木來開始編程了。
一、素材角色準(zhǔn)備;
角色里面添加球和小貓;

添加角色

先添加一個小球

角色改名為小球

添加小貓角色

角色改名為小貓
二、在空地,我們就直接用這個白色舞臺背景,不用再添加背景了

白色空背景做空地
三、先用編程控制小球的移動
角色先切換到小球,開始對小球角色進(jìn)行拖動積木編程。

選擇小球角色,從積木區(qū)選擇事件,把【當(dāng)綠旗被點(diǎn)擊】的積木拖到腳本區(qū),選擇運(yùn)動,把【移動到隨機(jī)位置】的積木拖到腳本區(qū)。點(diǎn)擊綠旗測試一下,我們看到小球只移動了一次。

這是因?yàn)椤疽频诫S機(jī)位置】只是一次的指令,如果我們想讓它持續(xù)保持跟蹤移動,就需要不斷重復(fù)移動的動作,這就用到了積木區(qū)控制里面的【重復(fù)執(zhí)行】積木。
因?yàn)槲覀兪侵貜?fù)【移到隨機(jī)位置】這個動作,所以把【移到隨機(jī)位置】卡合到【重復(fù)執(zhí)行】里面。

我們點(diǎn)擊一下綠旗運(yùn)行一下程序發(fā)現(xiàn),小球是可以在舞臺隨機(jī)移動了,但是移動的速度太快了,我們是要讓小球慢慢的滾動,移動速度比較慢。
這是因?yàn)槲覀兪褂谩疽频诫S機(jī)位置】這個積木無法控制小球移動的時間,所以小球會在瞬間完成移動到隨機(jī)位置,那么該怎么解決這個問題呢?

我們可以使用【在1秒內(nèi)滑行到隨機(jī)位置】這個積木來替換【移動到隨機(jī)位置】,這樣就可以控制小球移動的時間,從而控制小球移動的速度了。

例如,覺得小球運(yùn)動的太快了,我們可以修改1秒的參數(shù),把1改為3秒,這樣小球移動的速度就會慢一些了,可以試一試;
四、再用編程控制小貓的移動
小貓?jiān)鯓舆\(yùn)動呢?我們游戲規(guī)則是要讓小貓追著球移動。
現(xiàn)在我們來拖動積木控制小貓的運(yùn)動,當(dāng)然,也是從點(diǎn)擊綠旗開始,所以首先放的還是【當(dāng)綠旗被點(diǎn)擊】,然后小貓需要面向小球,在積木區(qū)里選擇【運(yùn)動】,找到【面向鼠標(biāo)指針】(“鼠標(biāo)指針”旁邊是有一個白色下三角按鈕,表示除了鼠標(biāo)指針,我們還可以選擇其他角色),點(diǎn)擊下三角按鈕,顯示兩個選項(xiàng),找到小球這個角色,選中它!
小貓面向小球后,就需要追過去了哦!我們再從【運(yùn)動】上找一塊合適的積木,例如【在1秒內(nèi)滑行到隨機(jī)位置】,把它拖到腳本區(qū)與上一塊積木卡合在一起,然后我們可以點(diǎn)擊下三角按鈕,還是選擇小球。試著點(diǎn)擊積木,看看小貓是不是追過去了。

但是我們看到小貓只追了一次就不追了?這是為什么呢?
因?yàn)槲覀冎唤o了它一次的指令,如果想要小貓一直追球,那么面向小球和追小球的動作就需要不斷地重復(fù)了,所以我們還是需要用到【控制】里面的【重復(fù)執(zhí)行】積木。

這樣,我們一個小貓追球游戲就完成了。
少兒編程其實(shí)很簡單,只要你愿意,你也可以自己在家教孩子學(xué)編程,不會的話可以跟著我一起學(xué)。
?
如果你也想自己在家教孩子學(xué)編程,歡迎加入我們,我們一起交流在家自己教孩子學(xué)編程過程中的心得收獲。
我是琦爸,一個自己在家教孩子玩編程、人工智能的爸爸。