Midterm Project Report - Jian-PingWang/EE2405 GitHub Wiki

迷宮遊戲

實作方法

如同展示影片所示,利用三軸加速器操控網頁上的物體(以方塊來代表車子)走出迷宮。

先利用 C code 處理三軸加速器得到的資料,做出判斷後將對應的指令傳出去。比方說,三軸加速器旋轉 90 度,則右轉等。 再利用 html 接收上述 C code 傳出的指令,並根據指令操控網頁上的物體移動。

其中,在 html 中,我參考 http://www.codeproject.com/Articles/577080/Create-an-HTML-and-JavaScript-Maze-Game-with-a-ti 的做法。

首先,利用 drawMazeAndRectangle() 來畫出終點的圓圈及代表車子的方塊。

再利用 moveRect() 依據 C code 傳入的指令移動方塊。比方說,往上走就是讓下一刻方塊 y 軸的值等於此刻方塊 y 軸的值 + 3。 並用 canMoveTo() 來判斷這次的移動是否會撞到牆壁,這個判斷是基於牆壁的顏色是黑色而道路則是白色的。

最後當方塊碰到代表終點的圓點時,遊戲中止,並跳出恭喜字樣。

問題與解決方法

1.時間延遲:由於我讓 html 快速且不斷的刷新,因此,時間延遲雖有但不甚嚴重。

2.換地圖,要重新設定起終點位置:由於起點與終點(也就是方塊與圓點)的位置在 html code 中是固定的,因此,若是更換迷宮的地圖,則需要調整 code 以避免起終點的位置不理想。

討論與檢討

1.方塊移動速度過快,再加上時間延遲的問題,導致有時很難精準的操控方塊的移動。因此,我將在 moveRect() 的移動步數由原本的三步改成一步。

2.應該可以再多加些功能,比方說當抵達終點時讓網頁唱歌之類的。甚至在遊戲開始前設置難度的選擇,選擇越難的難度,則地圖越複雜,但是因為這涉及到前述提及起終點位置調整的問題,因此這方面我沒有去做。

程式碼

kl25_sensors.c

maze2.gif

sensors-RGraph-v3.html

展示影片

https://youtu.be/Dp3hH-nlTeU