天天看點

scratch編寫遊戲:火柴人避開防守投籃

網上有很多籃球類遊戲,我們也編寫了一個。遊戲中有一個投籃手,一個防守者。投中一個球得一分。投籃手離籃筐越近,投籃準确率越高,但離籃筐越近,越可能碰到防守者,如碰到,遊戲結束。下邊是遊戲的效果圖。

scratch編寫遊戲:火柴人避開防守投籃

遊戲背景選擇系統自帶籃球場背景,如上圖。有四個角色,投籃手、防守者、籃球和定位點。如下圖。定位點在籃筐架子上,用來測量投籃時,籃球距離定位點多遠。

scratch編寫遊戲:火柴人避開防守投籃

下圖是投籃手和防守者的造型,投籃手有7個黑色造型,防守者有2個黃色造型,多個造型是為了實作兩者的動畫功能。造型采用火柴人,這是因為火柴人造型容易找到,即使用scratch的造型編輯器自己畫一個也不難,造型編輯器中矢量圖的線段變形功能十分強大。為滿足所有造型尺寸一緻,首先畫一個用線段組成的基礎火柴人,然後用線段變形功能修改基礎火柴人,設計出所有滿足要求的火柴人。本遊戲的造型是從一段視訊中一幀一幀摳出來的。投籃手的前4個造型用來完成帶球跑動的動畫,注意,球也是造型的一部分,籃球角色僅當投籃時才會出現。投籃手的後3個造型用完成投籃動作動畫。注意,第7個(最後一個)造型沒有籃球,在适當時候,籃球角色要出現在該造型的兩手之間,然後以兩手之間為起點移動到籃筐,完成投籃。為此第7個造型的中心應在兩手之間,當籃球角色執行移向投籃手的腳本時,兩者中心重合,即籃球角色在投籃手的兩手之間。

scratch編寫遊戲:火柴人避開防守投籃

投籃手腳本如下。投籃手是随着滑鼠移動的,當按下空格鍵時投籃手投籃。在“重複執行”腳本中包括兩部分腳本,其中第1部分腳本是“重複執行直到按下空格鍵”中的所有腳本,是投籃手帶球随滑鼠移動的腳本;餘下為第2部分,是投籃腳本。先看第1部分腳本。雖然投籃手随滑鼠移動,但滑鼠可以移出籃球場,而投籃手不能,是以如果滑鼠Y坐标大于10,出了籃球場,投籃手Y坐标就隻能等于10。由于造型1到4是帶球跑動的造型,如果造型号為5,要修改為1。第2部分是投籃腳本,首先,改為起跳姿勢的造型5。然後是抱球跳起造型6,Y坐标增加20,然後改為造型7,Y坐标再增加20,投籃者到最高點,注意,造型7無球,廣播投籃消息,通知籃球角色使自己移到造型7,以兩手之間為起點移動到籃筐,完成投籃。然後,投籃者Y坐标兩次減20,回到地上,等待空格鍵擡起,再一次執行第1部分程式,帶球随滑鼠移動。這裡需注意,投籃者跳到最高的停留時間加上下降時間應不小于籃球角色移動籃球到籃筐直到最後消失時間,避免出現兩個球的錯誤。

scratch編寫遊戲:火柴人避開防守投籃

在解釋籃球角色腳本前,首先要解決的問題是那種情況投籃投中,那種情況投不中。網上投籃遊戲投中規則五花八門。本遊戲規則是:距離籃筐越遠投籃越不準,在某一點投籃,那次投中,那次投不中無規律,或者說是随機的,但投中機率應是定值。設從投籃點到籃筐架距離為Y,其值為0到239,但50以内投籃是不可能的,一定會碰到防守者,是以Y取值範圍是50-239。令X=(Y/40)取整數,使用随機數發生器産生1到X之間随機數。規定随機數為1,投中,其它随機數投不中。如點到籃筐架距離Y<80,X=1,表示在Y<80情況下投中率為100%;如120>Y>79,X=2,投中率為50%;如160>Y>119,X=3,投中率為33%;…如240>Y>199,X=5,投中率為20%。

籃球角色腳本如下。在接受到投籃消息腳本中,首先籃球角色移動到投籃手,作為投籃起點,并顯示自己。其後是如果腳本,就是根據投籃起點到定位點距離,使用随機數發生器判斷本次投籃是否投中,随機數為1,投中,否則不中。投中,加1分,球移到籃筐上邊,然後從籃筐落下。否則之後,是投不中腳本,球移到籃闆上,從籃筐旁邊飛出。最後隐藏。注意和投籃手的投籃動作在時間上要銜接。

scratch編寫遊戲:火柴人避開防守投籃

最後是防守者的腳本如下。這段腳本比較簡單,首先判斷和投籃手距離,如小于100,移向投籃手去防守,如不小于,退回籃筐下。如将100變大,防守就比較緊,否則,則比較松。

scratch編寫遊戲:火柴人避開防守投籃

水準有限,不免有考慮不周之處,歡迎批評指正。

繼續閱讀