← FC Coder · HomePhase 04 · Lesson 50 · 60 min
Lesson50
Phase Four · Game · Matchday 50 · The Hunt
关卡 2 · 敌人 AI baby
追你跑
Today's 3 Jobs · 今天这三件事
- 01moveToward 纯函数 · 单位向量dx/dist 等
- 023 敌人 · 每秒选目标 · 每帧追decision tick
- 03🌟 碰敌人失球 · 真有挑战-1 球
对面没人 → 像踢空门。今天 3 敌人追。`moveToward(enemy, target, speed)` 纯函数 · 单位向量。每秒选目标 + 每帧追。游戏有挑战感了。
Concept
单位向量 + decision tick
Math.hypot(dx, dy) = sqrt(dx² + dy²)
方向
dx/dist · dy/dist
速度
enemy.x += (dx/dist) × speed × dt
决策
每秒选目标 · 每帧追
Half 2
函数 · 3 敌 · 碰撞 · 间隔
01moveToward 函数
01Min
Cursor + pnpm dev
老三件套。
02Min
lib/game.ts · function moveToward(enemy, target, speed)
Math.hypot · 单位向量 · 乘 speed。纯函数。
023 敌人 + 决策
03Min
enemies state · 3 个 · 颜色红
useState<Pos[]>。
04Min
setInterval 1s 选目标 · rAF 每帧调 moveToward
目标 = 最近球员 / 球。
05Min
球员碰敌人 → score -1 + 球重置
AABB(47 课)。
03AI 避免拥挤
06Min
AI Pair: 敌人间隔(避免叠一起)
Cmd+K · '加 separation force · enemies 互相排斥'。
07Min
📸 截图敌人追球员
Phase 4 第 10 张战利品。
讲给爸爸听
3 题
01单位向量是什么?Hint ↓
方向 · 长度 1。dx/dist 和 dy/dist。
02每秒选目标 vs 每帧选?Hint ↓
节省计算 · 真游戏 AI 也这样(更稳定 + 性能)。
03moveToward 是纯函数?Hint ↓
是。心法继续 · 易测。
温度计
评分
今天难度Difficulty
0
今天开心Fun
0