You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 11:24:59