俄羅斯方塊 3 ( 放置方塊,方塊不斷落下 )
這篇教學會延續「俄羅斯方塊 2 ( 角色移動、碰撞偵測與修正 )」範例,實作俄羅斯方塊遊戲的「放置方塊」效果,當方塊抵達底部或者疊在其他已經放置的方塊時,就會停止並進行放置的動作。
相關文章參考:
快速導覽:
開啟範例
開啟「俄羅斯方塊 2 ( 角色移動、碰撞偵測與修正 )」的範例,從這個範例進行修改。
放置方塊並重新繪製背景
點擊「方塊造型」角色,在「修正 ( 垂直碰到 )」的函式裡,添加三塊積木:
- 蓋章:將目前方塊造型繪製在舞台中。
- 隱藏:隱藏方塊,避免重疊。
- 廣播訊息:放置:告訴「背景格子」角色,方塊已經放置。
點擊「背景格子」角色,新增一個名為「碰到顏色」的函式,建立函式時勾選執行完畢再更新畫面,這個函式的目的在於偵測是否碰到特定顏色,按照下圖在函式裡放入相關積木。
這個函式的做法和方塊造型裡的碰到顏色函式類似,也同樣使用 color 變數,差別在於此處會額外偵測灰色,並且不同的顏色會對應到不同的數字,數字必須對應造型名稱,例如 shape1 的顏色就是 1,shape2 的顏色就是 2,依此類推。
繼續在「背景格子」角色中,新增一個名為「偵測顏色轉換清單」的函式,建立函式時勾選執行完畢再更新畫面,這個函式會透過背景格子角色的每次移動,偵測碰觸的顏色,並根據碰觸的顏色來更新背景 bg 清單的內容,函式內容如下:
- 將背景格子角色定位到遊戲範圍的左上角。
- 刪除 bg 清單的項目。
- 重複 17 次,每次重複執行:
- 刪除 bg_item 清單內容 ( 需新增一個 bg_item 清單 )。
- 重複 12 次,每次重複都偵測碰撞的顏色,將對應的數字存入 bg_item。
- 12 次重複結束後,將 bg_item 加入 bg 清單,由於 Scratch 的清單限制一維清單,所以 bg_item 會自動將內容組合成文字。
完成後,在「背景格子」角色中,設定收到廣播訊息「放置」時,依序執行「偵測顏色轉換清單」和「畫背景」函式。
點擊綠旗,用鍵盤移動方塊,當方塊抵達底部時,可以發現 bg 清單已經更動,這時背景畫面也已經更新。
方塊重新出現與往下掉落
在「背景格子」角色中,在「畫背景」的函式後方,都加入發送 start 廣播訊息,表示下一組積木可以開始出現。
點擊「方塊造型」角色,編輯收到 start 廣播訊息的動作:
- 設定變數 time 為 0.5 ( 需要新增一個變數 time )。
- 定位方塊到遊戲範圍上方的中間。
- 隨機更換造型並顯示角色 ( 角色在垂直碰到時會隱藏 )。
- 使用重複無限次將角色往下移動,並修正垂直方向的碰撞。
完成效果
點擊綠旗,透過鍵盤移動方塊,當方塊移動到底部,或碰到已經在畫面中的方塊時,就會停止並再出現新的方塊。
範例解答
繼續閱讀
如果已經熟悉了俄羅斯方塊 3 ( 放置方塊,方塊不斷落下 ) 的程式,就可以繼續閱讀「俄羅斯方塊 4 ( 消除完成方塊、偵測遊戲結束 )」的文章。
意見回饋
如果有任何建議或問題,可傳送「意見表單」給我,謝謝~