今天阿我做了之前一直想的地圖上的矩陣的類別,其實之前就有稍微有一些概念了,但是並沒有寫,現在寫好了,這個類別現在有的屬性基本上就是一個矩陣啦,地圖上的xy座標、長和寬,再加上顏色,另外就是函式了,有設定這個矩陣的值的函式和一個我心想出來的得到這矩陣碰撞箱的函式,功能是按照class的資訊創建出碰撞箱的矩陣來輸出,之前在寫主角的函式時我把決對位置的碰撞箱矩陣寫成是其中一項屬性,雖然要用時可以直接mainCharater.bounceRect來使用,但代價是如果要改動位置時就需要跟著更新碰撞箱,變得不能直接使用mainCharater.pos[0]=20之類的,碰撞箱會出錯,雖然目前問題不大,而這裡改成用函式來得到碰撞箱矩陣那就能直接mapRect.pos[0]=30,同時要調動它的碰撞箱時就只要mapRect.getBounceRect()就能使用,感覺方便了不少。
然後是阻擋的函式,這含是目前只有用在mainCharater中,輸入一個矩陣,它就會判斷有沒有碰撞到,如果有,那就會算出碰撞到的是哪一面(更準確地說,是算出自己碰撞箱的哪個邊已經超過對方碰撞箱面對面的那個邊,且超過距離最小的),然後把主角從那面擠出去(擠出的距離就是超過的距離),然後就完成了(看起來的效果和以前做scratch時寫的阻擋效果比好很多,不會卡在牆邊抖抖抖,畢竟那時沒有讓畫面判斷要不要反彈才更新),總之主角現在總算有能碰到的東西了,可喜可賀。
今天的進度是這樣。