04 小精靈+迷宮
(2023/04/12)
昨天看到呂奎漢老師做了一個迷宮的作品,讓我也想學做看看,因此有了此作品
1、畫迷宮圖
Maze Generator:https://www.mazegenerator.net/
產生一個12cell x 9cell的迷宮,如右圖
將產生的迷宮圖以【背景方式】的方式加入,拉到全舞台大小(480x360)
2、迷宮中放上【豆豆】
一顆豆豆可用空間
橫向空間:12cell+11柱子=23格(可放豆豆),每格約 20 像素
緃向空間:9cell+8柱子=17格(可放豆豆),每格約 21 像素
所以每顆豆豆的可用空間為20x20像素(正方形)
真正豆豆的大小採用14x14像素(造型中心設在圓心)
所以豆豆的左下角座標為(-230,-170),向上複製17顆(y軸差20像素),向右複製23顆(x軸差20像素)
作法如下:
先利用內建【Ball】的角色,修改大小為14x14
利用【分身】產生全部的豆豆
建立 x、y 兩變數,利用巢狀迴圈來加上【豆豆】(分身有數量限制,最多只能建立300個分身)
3、手動吃【豆豆】(這就是小精靈遊戲)
這就是【小精靈】的遊戲
新增一個內建【Beetle】角色
調整【Beetle】角色的大小
利用方向鍵控制【Beetle】角色的移動
當【豆豆】分身碰到【Beetle】時,就表示被吃了,所以要【刪除此分身】
【Beetle】角色及【豆豆】角色程式,如下
如果覺得豆豆一顆顆產生太耗時間可採用【新增函式積木】的方式來解決,如下
4、利用【左牆法則】來自動吃【豆豆】
左牆法則:根據呂奎漢老師的解釋為【優先偵測左邊,如果左邊有路強制左轉後向前移動一段距離才重新偵測,左邊沒路才往前】
其實這就是小精靈遊戲中【鬼】的程式
將【Beetle】角色加上【前方】及【左方】的偵測器
程式如下:
起點隨機設在迷宮的任何一個地方
左邊有路就往左邊走
吃完所有豆豆的程式
如果要改為【右牆法則】,增加【右方的偵測器】,並且遇到右方有路就往右彎!!
隱藏【偵測器】:
上面的作品會看到【偵測器】的使用,所以再利用下面程式把【偵測器】隱藏起來
呂奎漢老師的作品:https://scratch.mit.edu/projects/833522993/ (有一點難)
5、完成【小精靈】遊戲
遊戲說明:
迷宮中布滿【豆豆】
手動操控主角【Beetle】 (一開始隨機出現在迷宮的任一位置)
可以設置2~3隻【鬼】,鬼會自動在迷宮跑 (一開始隨機出現在迷宮的任一位置)
為避免走固定路線,可以利用【左牆法則】及【右牆法則】隨機出現
將吃完所有豆豆就過關,被鬼碰到就死掉
6、利用【左牆法則】去走迷宮
設定迷宮的起點及終點,讓Beetle利用【左牆法則】從起點走到終點
發現走的並不是很聰明!!迷宮走得快慢只是運氣問題!!
7、利用【AI】來走迷宮