在我的世界地下城开发mod的第一天

主要代码:

javascript 复制代码
// peeper_behavior.json
{
  "format_version": "1.19.0",
  "minecraft:entity": {
    "description": {
      "identifier": "dungeons:peeper_creeper",
      "is_spawnable": true,
      "is_summonable": true,
      "is_experimental": false
    },
    "components": {
      // 基础属性
      "minecraft:physics": {},
      "minecraft:health": {
        "value": 20
      },
      "minecraft:movement": {
        "value": 0.25
      },
      
      // 视线检测组件
      "minecraft:sensor": {
        "sensors": {
          "player_looking": {
            "event": "dungeons:player_looking",
            "event_filters": {
              "all_of": [
                {
                  "test": "is_family",
                  "subject": "other",
                  "value": "player"
                },
                {
                  "test": "facing_entity",
                  "subject": "other",
                  "operator": "<",
                  "value": 15 // 15度视角阈值
                }
              ]
            }
          }
        }
      },

      // AI行为树
      "minecraft:behavior.melee_attack": {
        "priority": 3,
        "speed_multiplier": 1.0
      },
      "minecraft:behavior.explode": {
        "priority": 1,
        "fuse_length": 0.5, // 半秒后爆炸
        "power": 4,
        "breaks_blocks": true,
        "conditions": {
          "distance_to_target": "< 3"
        }
      }
    },
    
    // 事件响应
    "events": {
      "dungeons:player_looking": {
        // 被注视时冻结移动
        "add": {
          "component_groups": ["freeze_movement"]
        }
      },
      "dungeons:start_chase": {
        // 开始追击时同步玩家速度
        "trigger": {
          "event": "minecraft:entity_spawned",
          "target": "self"
        },
        "set_property": {
          "movement_speed": "query.target(0).movement_speed"
        }
      }
    },
    
    // 组件组
    "component_groups": {
      "freeze_movement": {
        "minecraft:movement": {
          "value": 0
        }
      }
    }
  }
}

实现说明:

  1. 视线检测

    使用facing_entity检测组件,当玩家视角与生物角度小于15度时触发冻结事件。

  2. 动态速度同步

    通过set_property在追击事件中实时获取玩家速度值,并应用到生物移动组件。

  3. 快速爆炸机制

    设置fuse_length为0.5秒,当距离玩家小于3格时立即触发爆炸。

  4. 状态切换

    使用组件组动态修改移动速度,实现冻结/追击的状态切换。

相关推荐
Surmon2 小时前
彻底搞懂大模型 Temperature、Top-p、Top-k 的区别!
前端·人工智能
见行AGV机器人5 小时前
无人机脉动线中的AGV小车
人工智能·无人机·agv·非标定制agv
廋到被风吹走5 小时前
【AI】从 OpenAI Codex 到 GitHub Copilot:AI 编程助手的技术演进脉络
人工智能·github·copilot
木斯佳5 小时前
前端八股文面经大全:bilibili生态技术方向二面 (2026-03-25)·面经深度解析
前端·ai·ssd·sse·rag
不会写DN5 小时前
Gin 日志体系详解
前端·javascript·gin
newsxun5 小时前
DHA之后,大脑营养进入GPC时代?
人工智能
程序员Better5 小时前
2026年AI大模型选择指南:8大主流模型深度对比,小白秒懂如何选!
人工智能
冬夜戏雪5 小时前
实习面经记录(十)
java·前端·javascript
ai_xiaogui5 小时前
AIStarter新版后端原型图详解:架构全面升级+共享环境一键部署,本地AI模型插件工作流管理新时代来临(2026开发者必看)
人工智能·架构·推动开源ai落地·原型图细节·aistarter新版·aistarter新版原型图·架构全面升级+共享环境一键部署
2501_926978335 小时前
“LLM的智能本质--AGI的可能路径--人类的意识本质”三者的统一基底(5.0理论解读)
人工智能·经验分享·笔记·深度学习·机器学习·ai写作·agi