我正在構建一個簡單的模擬,我需要超過 32 個類別,因此我實現了建議的解決方案來定義一個Detector.canCollide函數來允許我這樣做。Detector.canCollide = function (filterA, filterB) { console.log(filterB) return (filterB["collidesWith"].includes(filterA["group"]) || filterB["group"] == 0) && (filterA["collidesWith"].includes(filterB["group"]) || filterA["group"] == 0);} 上面給出了錯誤:filterB["collidesWith"]未定義。經過進一步檢查,我使用了一個console.log()語句來找出這個對象(filterB)發生了什么,它返回了這個:{category: 1, mask: 4294967295, group: 3, collidesWith: Array(1)}category: 1collidesWith: [0]group: 3mask: 4294967295__proto__: Object}{category: 1, mask: 4294967295, group: 1}category: 1group: 1mask: 4294967295__proto__: Object}第二個對象似乎是該console.log()功能的延續(因為它在打印后繼續記錄)編輯: 我發現這filterA是相反的,首先它打?。簕category: 1, mask: 4294967295, group: 1}category: 1group: 1mask: 4294967295__proto__: Object}{category: 1, mask: 4294967295, group: 2, collidesWith: Array(1)}category: 1collidesWith: [0]group: 2mask: 4294967295__proto__: Object}filterA注意:當我初始化碰撞體時,碰撞過濾器選項與分別出現 ( ) 和消失 ( filterB)的值相同我的代碼其他地方有錯誤嗎?或者這是我忽略的其他 Matter.js 功能?
Matter.js 碰撞過濾器選項消失又重新出現?
阿晨1998
2023-11-11 21:50:43