1. 程式人生 > >Scratch 創意遊戲(一):彈球遊戲

Scratch 創意遊戲(一):彈球遊戲

Scratch 創意程式設計(一):彈球遊戲

遊戲方式很簡單:

(1) 小球在螢幕中不斷反彈,碰到牆壁反彈(除底板外)、碰到磚塊反彈、碰到擋板反彈。

(2) 玩家控制擋板,只能左右移動,不能上下移動或翻轉。

(3) 被小球碰到的磚塊消失,得分,當所有磚塊消失,過關。

(4) 小球觸碰底板,遊戲失敗。

這次先做一個簡化版打磚塊遊戲——彈球遊戲:玩家力保小球不落地,每接住小球一次加一分;小球落地,遊戲結束。

Scratch 創意程式設計(一):彈球遊戲

遊戲製作步驟:

1.開啟Scratch程式設計軟體。

  1. 刪除角色。右鍵單擊小貓角色,將其刪除。

Scratch 創意程式設計(一):彈球遊戲

  1. 新增小球角色

Scratch 創意程式設計(一):彈球遊戲

  1. 編寫小球指令碼——設定小球出現的位置

Scratch 創意程式設計(一):彈球遊戲

  1. 編寫小球指令碼——設定小球初始運動方向和速度

Scratch中的方向用角度值來表示,下圖標出了各角度值對應的運動方向:

Scratch 創意程式設計(一):彈球遊戲

既然小球的初始位置為舞臺的上邊緣中部,則初始運動方向可以向下以一定角度運動,則角度值範圍為135度到225度之間,為了增加遊戲的不確定性,使用隨機數模組。

Scratch 創意程式設計(一):彈球遊戲

小球的運動用移動模組,步數越大則運動越快。

Scratch 創意程式設計(一):彈球遊戲

小球的運動是持續不斷的,所以需要使用“控制”類目中的“重複執行”模組

Scratch 創意程式設計(一):彈球遊戲

則小球的指令碼變為:

Scratch 創意程式設計(一):彈球遊戲

此時頁面如下:

Scratch 創意程式設計(一):彈球遊戲

  1. 編寫小球指令碼3——碰到邊緣反彈

“動作”類目中有一個模組可以直接實現角色碰都邊緣反彈

Scratch 創意程式設計(一):彈球遊戲

小球指令碼變為:

Scratch 創意程式設計(一):彈球遊戲

此時頁面如下:

Scratch 創意程式設計(一):彈球遊戲

  1. 新增小球音效

Scratch角色庫中的角色一般都自帶音效,本例中的小球自帶名為“POP”的音效。

當實現小球碰到邊緣時,播放“POP”音效,需要呼叫“偵測”類目中的“碰到”模組:

Scratch 創意程式設計(一):彈球遊戲

新增音效之後的小球指令碼為:

Scratch 創意程式設計(一):彈球遊戲

  1. 繪製擋板

當角色庫中沒有合適的角色可選時,可以“繪製新角色”。

Scratch 創意程式設計(一):彈球遊戲

Scratch 創意程式設計(一):彈球遊戲

  1. 編寫擋板指令碼——跟隨滑鼠運動

擋板的運動跟隨滑鼠左右移動,即擋板的X座標跟隨滑鼠變化,Y座標不變。

Scratch 創意程式設計(一):彈球遊戲

擋板指令碼為:

Scratch 創意程式設計(一):彈球遊戲

注意:此時的滑鼠動作僅為移動,而非拖動,滑鼠左右鍵均處於鬆開狀態。

  1. 編寫小球指令碼4——碰到擋板反彈

如何判斷小球是否碰到擋板,可以用“偵測”類目中的“碰到顏色”模組。

Scratch 創意程式設計(一):彈球遊戲

獲取顏色操作如下:

Scratch 創意程式設計(一):彈球遊戲

小球的反彈的同樣適用一定角度範圍內的隨機值。

小球指令碼變為:

Scratch 創意程式設計(一):彈球遊戲

  1. 繪製地板

Scratch 創意程式設計(一):彈球遊戲

因為小球指令碼中判斷小球是否碰到擋板用的是檢測顏色,所以這裡要注意:地板的顏色需與擋板不同。

Scratch 創意程式設計(一):彈球遊戲

  1. 編寫小球指令碼5——碰到地板遊戲結束

判斷小球是否碰到地板,和判斷是否碰到擋板一樣,利用顏色來判斷。

當小球碰到地板時,顯示“Game Over”字樣。

Scratch 創意程式設計(一):彈球遊戲

停止全部程式:

Scratch 創意程式設計(一):彈球遊戲

Scratch 創意程式設計(一):彈球遊戲

  1. 編寫小球指令碼5——擋板每接住一次小球,加一分

得分是遊戲最重要的反饋機制之一。新增得分,需要新建一個變數。

Scratch 創意程式設計(一):彈球遊戲

遊戲開始時,得分為0,所以需要在指令碼開頭處,將變數“得分”設為0。

當小球碰到擋板時,變數“得分”的值增加1。

所以小球指令碼為:

Scratch 創意程式設計(一):彈球遊戲

Scratch 創意程式設計(一):彈球遊戲

  1. 編寫小球指令碼6——不斷加速的小球

之前的指令碼,小球的運動速度為恆定的“10步”,我們可以將小球的運動速度設定為“10+得分”,這樣,當你得分越高,速度就越快。

Scratch 創意程式設計(一):彈球遊戲

Scratch 創意程式設計(一):彈球遊戲

至此,彈球遊戲的基本框架和指令碼編寫完畢。基於這樣一個彈球遊戲,大家如果能想到更多的玩法,歡迎留言!