簡明Scratch 小遊戲開發入門教學 - TechBridge 技術共筆部落格

文章推薦指數: 80 %
投票人數:10人

Scratch 是由MIT 麻省理工媒體實驗室所開發的拖拉式積木程式語言(吉祥 ... 非常適合中小學生學習,所以也常用於學習程式設計邏輯和運算思維的工具。

TechBridge技術共筆部落格 Menu Home About Tags Archives RSS SignIn 前言 Scratch是由MIT麻省理工媒體實驗室所開發的拖拉式積木程式語言(吉祥物是一個狸貓?),讓使用者透過拖拉程式積木元件的方式就可以撰寫小遊戲和動畫以及小型應用程式。

由於Scratch入門容易直覺,但卻包含了許多程式邏輯的概念(例如:變數宣告、條件判斷、迴圈、事件處理、運算、函式等),非常適合中小學生學習,所以也常用於學習程式設計邏輯和運算思維的工具。

本文將透過製作一個蝙蝠吃香蕉小遊戲(亦可以自行修改成其他動物)來介紹如何使用Scratch來進行開發和製作小遊戲。

以下是文章的主要會涵蓋的部分: 開發環境介紹 規劃遊戲設定 建立遊戲環境 編寫程式邏輯 開發環境介紹 Scratch可以除了可以使用離線版本外也可以透過網頁編輯器進行編輯十分方便。

首先,我們先來認識Scratch線上版的開發環境。

進入到Scratch官方網站後可以註冊會員,登入後會呈現以下畫面: 當我們選擇創建專案的按鈕後進入程式編輯器中: 我們可以看到中間為主要角色和背景舞台編輯區,程式呈現畫面由舞台(stage)和角色(sprite)所組成,左邊為程式積木和元件區塊,可以將積木拖曳至程式區即可執行。

在Scratch中主要有以下程式積木元件: 動作:角色移動、隨機定位等操作 外觀:佈景舞台、角色圖片轉換等外觀變化等操作 音效:產生音效等操作 事件:事件處理等操作 控制:條件控制、迴圈等操作 偵測:接收使用者輸入、碰撞偵測等操作 運算:邏輯運算等操作 變數:宣告變數、賦值變數等操作 函式積木:函式等操作 呈現的結果則在呈現結果區呈現,若需要新增/設定角色,角色區設定,另外背景舞台可以在背景舞台處設定。

當我們點選新增角色按鈕則可以創建新角色: 當我們點選擴充元件按鈕則可以載入其他非預設元件: 選擇舞台: 新增註解: 規劃遊戲設定 在這裡我們希望規劃一個簡單的小遊戲:蝙蝠吃香蕉小遊戲。

這個小遊戲規則為玩家在60秒時間內可以使用鍵盤上下左右操控蝙蝠,當碰撞到香蕉時則分數累加10點,時間結束後看累計多少分數。

最終小遊戲呈現結果: 建立遊戲環境 創建角色: 設定舞台: 創建角色(創建香蕉和蝙蝠)和舞台(BlueSky): 編寫程式邏輯 宣告變數,點選建立一個變數scores和times分別紀錄分數和時間: 接著我們可以點選舞台、角色分別拖拉嵌入程式積木: 佈景舞台程式區塊程式邏輯: 監聽開始旗子被點擊事件 初始化scores變數0 初始化times變數為60 發送廣播訊息game_start 執行迴圈(跳出條件為times=0) 變數減少1(-1) 等待1秒(代表有stop過1秒鐘) 停止全部動作 最後程式積木: 香蕉角色程式區塊: 監聽game_start廣播事件 執行迴圈(跳出條件為times=0) 移動滑行1秒到隨機位置 監聽碰撞事件如果碰到蝙蝠 則分數增加10 停止全部動作 最後程式積木: 蝙蝠程式區塊: 監聽game_start廣播事件 執行迴圈(跳出條件為times=0) 監聽鍵盤向上 則y軸增加10單位 監聽鍵盤向下 則y軸增加-10單位 監聽鍵盤向右 則x軸增加10單位 監聽鍵盤向左 則x軸增加-10單位 停止全部動作 最後程式積木: 若程式區塊都已經完成,當我們點擊綠色旗子即可執行程式! 遊戲成果: 總結 以上透過一個Scratch簡單小遊戲範例說明Scratch環境和使用方式。

雖然Scratch入門容易直覺,但卻包含了許多程式邏輯的概念(例如:變數宣告、條件判斷、迴圈、事件處理、運算、函式等),非常適合中小學生學習,所以也常用於學習程式設計邏輯和運算思維的工具,也適合展示給初學者一些程式邏輯的基本概念,自娛娛人。

參考文件 Scratchwiki #scratch #教學 #scratch教學 #tutorial KDChang Follow Following Founder@TechBridge/CoderBridge 文藝型開發者,夢想是做出人們想用的產品和辦一所心目中理想的學校。

AStarter,SoftwareEngineer&Maker.JavaScript,Python&Arduino/Androidlover.:) Facebook RelatedPosts LongitudinalVehicleModel實作小筆記 Po-Jen Gitcherrypick實戰:作業分支混到mastercommit,但又不想洗掉自己作業的commit要怎麼辦? MoreCoke 【MySQL】透過FIELD函式自訂排序 Jianna Newsletter Subscribe Comments Submit SignIntojoininthediscussion. Edit Submit Edit Submit Reply Submit



請為這篇文章評分?