Kaboom.js无法识别地图数组?TypeError报错问题求助
解决Kaboom.js addLevel报错:TypeError: Cannot read properties of undefined (reading '-')
你的报错核心原因是关卡配置的结构不符合Kaboom.js的要求:addLevel函数需要将tile字符对应的实体定义放在配置对象的tiles属性下,而不是直接作为顶层属性。你当前把"-"的映射直接写在了level_config里,导致函数无法正确识别tile规则,从而抛出未定义错误。
修正后的代码
kaboom(); loadSprite("player", "/bean.png"); loadSprite("grass", "/grass.png"); // 确保所有资源加载完成后再初始化关卡 waitForLoad(); const m1ap = [ '----------------', '----------------', '----------------', '----------------', '----------------', '----------------' ]; const level_config = { tileWidth: 64, tileHeight: 64, // 关键:将tile映射放在tiles属性下 tiles: { "-": () => [ sprite("grass"), "block", area(), body(), ] } }; var level = addLevel(m1ap, level_config);
额外说明
waitForLoad()是可选但推荐的:确保所有sprite资源加载完成后再创建关卡,避免可能的渲染问题。tileWidth和tileHeight的属性名是正确的,不需要替换成width/height,你的初始尝试方向不对。
内容的提问来源于stack exchange,提问作者protato
相关产品推荐
相关产品推荐

