Day 5 · 共 10 节

战斗

做出最小战斗闭环:一键攻击、命中扣血、击败敌人。冲突,让故事有代价。

学习目标

搭建带 HP 与 Hurtbox 的敌人场景
为玩家实现带冷却的攻击 Hitbox
稳定命中、可击杀,并处理好与对话的按键冲突

今日课程

今天怎么学

承接 Day3 移动与 Day4 对话。攻击键避开 E。先单测 HP,再接命中,最后排练演示线。

Lesson 1 · 今天只要「打得到、打得死」

店小二说竹林不太平。今天我们把「不太平」做成可玩规则:出现一个敌人,你能攻击它,它会掉血,血量归零后消失或倒下。完成定义请置顶:按攻击键命中敌人至少一次并扣血;连续攻击可击败;过程中输入不与对话严重冲突。

明确不做:华丽连招树、技能冷却 UI 墙、装备数值表、AI 行为树巡逻包抄。那些是扩展包。今天只要一键攻击闭环。贪复杂战斗,是独立游戏坟场最常见墓碑文。

导演视角:战斗是「规则表演」。玩家要立刻读懂因果——我按了,所以它掉血。读不懂因果,特效再炫也是噪声。所以我们用清晰的 Hitbox/Hurtbox 与 print/数字反馈,而不是先做粒子。

竹林入口遇敌战斗示意
冲突让故事有代价:打得到,打得死
战斗最小闭环
靠近 → 攻击 → 扣血 → 击败
敌人有 HP → 玩家攻击命中 → HP 归零移除
知识点

最小战斗 = 生命值 + 命中判定 + 死亡处理。三条齐了就是游戏;缺一条就只是动画表演。

AI Prompt
【角色】你是 Godot 4.7.1 Standard(非 .NET)教学助手,面向零基础「导演型」学员。 【项目约定】引擎 Godot 4.7.1;玩家可移动 res://scenes/player.tscn;已有 NPC 对话(interact=E);攻击键建议 J 或鼠标左键,避开 E 【任务】给出「最小可玩战斗」验收清单(≤7 条);警告今天最不该做的 3 个复杂功能。 【输出格式】编号验收清单(每条含现象);3 条禁止项口语化说明。 【约束】禁止插件/技能树/装备系统;只针对 Godot 4.7.1。

承接检查:移动稳、对话可关。若对话占用同一按键,先把攻击键设为不同键(如 J 或鼠标左键),写进口令本。

把「打得到、打得死」贴在完成定义旁。任何新想法先过这两句。过不了,就不是今天的活。

战斗课最容易情绪化:打空会烦。烦的时候停手,开碰撞可见,看盒子,不要重写世界。

今日禁止清单再读一次:技能树、装备、多人联机。看见就砍需求,不要砍时间。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。继续补充验收笔记。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。继续补充验收笔记。继续补充验收笔记。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。

本节小练

写下攻击键与今日 Done。键位冲突先仲裁——没键位,就没有战斗。

Lesson 2 · 敌人场景怎么拼

敌人最小结构建议:根 CharacterBody2D(或 Node2D 静止怪)命名 Enemy → Sprite2D → CollisionShape2D(身体挡路,Layer 2 可与墙共用或单独)→ Hurtbox(Area2D,专用于受伤,Layer 4)→ 其子 CollisionShape2D → 可选 HP 标签。今天敌人可以站桩,不必追人。

碰撞层约定(本课程):Layer 1 = player;Layer 2 = walls;Layer 3 = npc 交互区;Layer 4 = enemy hurtbox;Layer 5 = player attack。AttackHitbox(Layer 5,Mask 含 4)扫 Hurtbox(Layer 4),与身体碰撞分开调。

为什么单独 Hurtbox?因为「身体碰撞」和「受伤判定」常要分开调。身体可以较小防卡墙;受伤区可以略大更好打中。混在一个盒子里,手感会又卡又难受。

Hitbox 与 Hurtbox
Hurtbox 负责挨打;Hitbox 负责打人
知识点

把敌人做成 enemy_bandit.tscn 独立场景,再拖进竹林或村外。复制第二个敌人只改数值/贴图即可。模板思维延续 Day4。

AI Prompt
【角色】你是 Godot 4.7.1 Standard(非 .NET)节点结构设计顾问,面向零基础学员。 【项目约定】敌人 res://scenes/enemies/enemy_bandit.tscn;根 Enemy(CharacterBody2D 或 Node2D 站桩)→ Sprite2D → CollisionShape2D → Hurtbox(Area2D)→ CollisionShape2D;组 enemy;碰撞层:Layer 4=enemy hurtbox,Layer 5=player attack 【任务】设计站桩敌人最小节点树(含 Hurtbox),说明各节点职责;敌人今天不追逐。 【输出格式】ASCII 场景树 + 职责表;碰撞层最简配置让玩家 AttackHitbox 能扫到 Hurtbox。 【约束】禁止插件;禁止编造节点名;只针对 Godot 4.7.1。

外观:AI 生成「古风山贼」小图,或用色块。占位敌人完全合格。先通规则,再换皮。

放到村口外或单独 bamboo_test.tscn 测试场也行。测试场的好处是干扰少:没有 NPC 对话抢输入。

站桩怪不是偷懒,是实验控制变量。等命中稳定,再加追逐也不迟。变量越少,真相越快。

敌人加到组 enemy,方便检测与未来群体处理。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。继续补充验收笔记。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。继续补充验收笔记。继续补充验收笔记。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。

本节小练

纸上画出敌人节点树。Hurtbox 必须单独标出——分不清挨打盒,就分不清 Bug。

Lesson 3 · HP:让伤害看得见

给敌人脚本加 hp 与 max_hp,再加 take_damage(amount):扣血、夹紧到 0、打印剩余血量;到 0 调用 die()。视觉上可用 Label 显示数字,或改 Sprite 颜色闪一下。今天数字 print 也算合格反馈,但有 Label 更直观。

敌人 HP 示意
扣血、归零、死亡
敌人 HP 示意
extends CharacterBody2D

@export var max_hp: int = 3
var hp: int

func _ready() -> void:
    hp = max_hp

func take_damage(amount: int) -> void:
    hp = max(hp - amount, 0)
    print("敌人剩余 HP: ", hp)
    if hp == 0:
        die()

func die() -> void:
    queue_free()
知识点

max_hp=3、每次伤害 1,便于手动点三下验收。数值过大难测,过小一碰就没,都不利于学习反馈。

AI Prompt
【角色】你是 Godot 4.7.1 Standard(非 .NET)GDScript 助手,面向零基础学员。 【项目约定】敌人 res://scenes/enemies/enemy_bandit.tscn;根 Enemy(CharacterBody2D);max_hp=3,每次伤害 1 【任务】写 HP 脚本:max_hp、take_damage、die(queue_free);并教临时用键盘测试扣血(不依赖攻击)。 【输出格式】完整可粘贴 GDScript + _input 或 _unhandled_input 按数字键 1 调用 take_damage(1) 的测试片段;F5 现象(打印剩余 HP、归零消失)。 【约束】禁止插件;禁止攻击系统;只针对 Godot 4.7.1。

先单独测 HP:不靠攻击,直接调用扣血。确认能打印并死亡。这样后面若「打了不掉血」,你就知道问题在命中,不在 HP。

HP 用整数即可。浮点血量今天没有收益。简单数值,换来清晰验收。

die 里先 print 再释放,避免「无声无息消失」让你怀疑是否真的死了。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。继续补充验收笔记。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。继续补充验收笔记。继续补充验收笔记。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。

本节小练

不攻击,用测试手段把敌人扣到消失。HP 模块独立通过——先证明会死,再证明打得到。

Lesson 4 · 玩家攻击键与 Hitbox

在玩家下加 AttackHitbox(Area2D + CollisionShape2D)。Godot 4.7.1 操作:选中 Player → 添加 Area2D 命名 AttackHitbox → 添加 CollisionShape2D 子节点 → 检查器 Monitoring = Off(默认关闭);Collision Layer 勾选 Layer 5;Collision Mask 勾选 Layer 4(enemy hurtbox)。

在 Project → Project Settings → Input Map 添加 attack,绑定 Physical Key J 或鼠标 Button Left,避开 E(interact)。按下攻击键时,Monitoring 短时间开启(约 0.15 秒)再关闭——攻击是「挥砍窗口」,不是常开电锯。

攻击 Hitbox 窗口
短时开启再关闭

Input Map 添加 attack,绑定 J 或鼠标左键,避开 E(对话)。脚本 Input.is_action_just_pressed("attack") 触发攻击,并加 0.3–0.35s 冷却,防止连打穿透逻辑。

按 attack → 开启 Hitbox → 短暂后关闭
知识点

Hitbox 位置应在角色朝向一侧。左右翻转时,同步翻转或偏移 Hitbox。只改 Sprite 不改 Hitbox,会出现「看着往左砍,打到右边」的鬼畜。

AI Prompt
【角色】你是 Godot 4.7.1 Standard(非 .NET)战斗系统向导,面向零基础学员。 【项目约定】Player res://scenes/player.tscn → AttackHitbox(Area2D + CollisionShape2D);默认 monitoring=false;Input Map 动作 attack 绑定 J;与 interact(E) 分开;Layer 5=player attack 【任务】教我添加 AttackHitbox:按 attack 短暂开启(~0.15s)再关闭;与 Sprite flip_h 同步方向;冷却 0.3s。 【输出格式】编号编辑器步骤(Area2D Monitoring/Collision Layer/Mask)+ 完整可粘贴 player.gd 攻击片段;F5 现象(print「挥砍」+ 可见 Hitbox 闪一下)。 【约束】禁止 AnimationPlayer/状态机插件;只针对 Godot 4.7.1;需要场景树时先让我粘贴。

开启时 print「挥砍」。先证明攻击动作发生,再接伤害。分段验收继续生效。

攻击可加极短前摇(Timer),但不要超过 0.1s 学习成本。先同步命中,再追求动作感。

Hitbox 形状用矩形就够。多边形完美描边留给以后。

若使用鼠标攻击,记得游戏窗口要有焦点。编辑器焦点问题会伪装成「攻击坏了」。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。继续补充验收笔记。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。继续补充验收笔记。继续补充验收笔记。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。

本节小练

按攻击键有打印/可见 Hitbox 闪一下。窗口存在,本节过——没有窗口,就没有命中。

Lesson 5 · 命中:Hitbox 碰到 Hurtbox

当攻击 Hitbox 检测到敌人 Hurtbox(或敌人 body),调用对方的 take_damage(1)。注意同一挥砍不要连续扣血十次:用「本段攻击已击中集合」或挥砍期间只结算一次。连扣是新手战斗最冤的 Bug,玩家会以为数值炸了。

Hitbox 与 Hurtbox 命中
碰到就扣血,防重复结算
知识点

层/掩码必须让 Hitbox 能扫到 Hurtbox:AttackHitbox Layer 5、Mask 含 Layer 4;Hurtbox Layer 4。Project → Project Settings → Layer Names 可命名便于记忆。扫不到时,优先开 Debug → Visible Collision Shapes 看盒子,而不是重写伤害公式。

AI Prompt
【角色】你是 Godot 4.7.1 Standard(非 .NET)战斗排错教练,面向零基础学员。 【项目约定】AttackHitbox(Area2D,Layer 5,Mask 含 Layer 4)→ area_entered 检测 Hurtbox;敌人 take_damage(1);防同一次挥砍重复扣血 【任务】攻击 Hitbox 开了但敌人不掉血——给排查清单。 【输出格式】按最可能→次可能编号;每步含「检查什么」+「正常/异常现象」:层/掩码、monitoring、信号类型(area vs body)、take_damage、重复命中。 【约束】禁止插件;只针对 Godot 4.7.1;需要场景树/层截图时先让我粘贴。

成功标准:一刀 -1 HP 的打印。看见数字,战斗才从想象变成事实。

若信号用 area_entered 却触发 body,或相反,核对你连的是 Area 还是 Body。连错信号家族,会沉默或乱触发。

命中成功时也可让敌人 knockback 一点,非必须。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。继续补充验收笔记。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。继续补充验收笔记。继续补充验收笔记。

本节小练

命中一次,HP 明确减少。减了,才谈击杀——先有伤害,才有胜负。

Lesson 6 · 受击反馈与死亡

die() 里 queue_free() 是最小死亡。可加:短暂闪白/变红、禁用碰撞、播放一句 print「山贼倒下」。不要一上来做死亡动画状态机与掉落表。

受击与死亡
闪白 → 归零 → 移除

可选:敌人也能碰玩家扣血(接触伤害)。若做,请给玩家同样 take_damage,并加无敌帧(0.5s),否则会一帧扣光。今天时间紧可只做「玩家打怪」,怪不反击——单边战斗仍可验证系统。

HP>0 闪一下 → HP=0 → queue_free
知识点

死亡后确保 Hitbox 不再继续结算。对象释放后仍持有引用会报错。用 is_instance_valid 或在集合里小心清理。

AI Prompt
【角色】你是 Godot 4.7.1 Standard(非 .NET)GDScript 助手,面向零基础学员。 【项目约定】敌人 Enemy;take_damage/die 已有骨架;默认先实现「玩家打怪」单向,不做反击 【任务】完善 take_damage/die:扣血打印、简单位移或 modulate 颜色闪烁、hp≤0 时 queue_free。 【输出格式】完整可粘贴敌人 GDScript;可选接触伤害+玩家无敌帧单独标注「加分项」;F5 现象(三刀击败、场景树敌人消失)。 【约束】禁止掉落表/死亡动画状态机;禁止插件;只针对 Godot 4.7.1。

三刀打死一只怪。打得死,闭环才算圆。打不死,再炫的攻击都是空气。

单向战斗(只打怪)完全可作为竖切片。反击是加分,不是及格线。及格线是因果可读的击杀。

死亡掉落物品今天禁止。掉落是另一个系统的门。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。继续补充验收笔记。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。继续补充验收笔记。继续补充验收笔记。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。

本节小练

击败一只敌人,场景树里它消失。消失即胜——胜利要可见。

Lesson 7 · 冷却、手感与输入仲裁

攻击冷却(如 0.35s)让节奏可读,也减少信号风暴。移动可在攻击时保留,或短暂减速——选一种,写进规则。对话打开时禁止攻击;攻击时若不想对话插入,也可禁 interact。用简单布尔:talking / attacking。

攻击冷却示意
窗口 + 冷却 + 状态互斥

手感清单:太远砍空?加大 Hitbox 或靠近再砍。太容易误伤空气?缩小窗口时间。一次只调一个参数,记下前后差异。

知识点

输入仲裁是 Demo 质量关键。同一帧又说话又砍,会制造「灵异事件」。明确优先级:对话中 > 攻击 > 移动(示例),或你自定但要一致。

AI Prompt
【角色】你是 Godot 4.7.1 Standard(非 .NET)输入仲裁顾问,面向零基础学员。 【项目约定】键位:移动 WASD/ui_*、交谈 interact(E)、攻击 attack(J);对话 talking 标志;攻击冷却 0.35s 【任务】设计最简输入仲裁:对话中禁用 attack;attack 冷却;给出 GDScript 片段。 【输出格式】键位表 + 完整可粘贴仲裁逻辑(布尔 talking/attacking 或 GameState);优先级:对话中 > 攻击 > 移动。 【约束】禁止状态机插件;只针对 Godot 4.7.1。

把键位表写进口令本:移动 WASD、交谈 E、攻击 J(示例)。团队(未来的你)需要这份表。

冷却可用 Timer 节点或累计 delta。哪种都行,保持一种。两套冷却并存会互踩。

键位表更新后,顺便改 FAQ 式备注:攻击键不是 E。

仲裁布尔请集中放一个地方,避免 NPC、玩家、UI 各写各的 talking 标志对不上。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。继续补充验收笔记。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。继续补充验收笔记。继续补充验收笔记。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。

本节小练

对话中按攻击无效果;冷却内连按不刷伤害。规则稳,本节过。

Lesson 8 · 用 AI 一次对齐整条战斗链

当你节点已齐,让 AI 按真实路径输出完整脚本:玩家攻击、敌人 HP、层设置说明、冷却、防重复命中。先贴场景树与键位表,禁止 AI 瞎猜节点名。

战斗 AI 联调顺序
HP→窗口→命中→死亡→冲突检查

联调顺序固定:HP 单测 → 攻击窗口 print → 命中扣血 → 三刀死亡 → 对话冲突检查。每步失败都停,不要「一起修」。

单测 HP → 挥砍窗口 → 命中 → 击杀
AI Prompt
【角色】你是 Godot 4.7.1 Standard(非 .NET)联调工程师,面向零基础学员。 【项目约定】我会粘贴场景树与键位表;Player→AttackHitbox;Enemy→Hurtbox+HP;层:1 player,4 enemy hurtbox,5 player attack;防重复命中;冷却 0.35s;对话中禁 attack 【任务】给出玩家攻击 + 敌人 Hurtbox/HP 完整可粘贴脚本与层配置步骤。 【输出格式】先确认场景树;再输出 player.gd + enemy.gd 完整代码 + Project Settings 层说明 + F5 验收现象(命中-1HP、三刀死亡)。 【约束】禁止猜节点名——我先粘贴树再写代码;禁止插件;只针对 Godot 4.7.1。
知识点

战斗 Bug 排错时,把「看见的」和「算的」对齐:开调试碰撞形状,确认盒子在砍的方向。眼睛是第一调试器。

把 AI 生成的脚本先放进空项目或备份分支心态:粘贴前复制旧文件。战斗脚本一长,更需要回滚点。

联调成功录像 10 秒,作为 Day6 演示素材雏形。

一次挥砍打中两个怪可以允许。先保证单个目标正确,再测多目标。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。继续补充验收笔记。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。继续补充验收笔记。继续补充验收笔记。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。

本节小练

完整击杀一次并保存回放截图。样片到手,才进村庄包装。

Lesson 9 · 竹林遇敌排练

把敌人放到村外/竹林入口,做演示路线:听店小二暗示 → 走出村口 → 遇敌 → 击败。路线本身就是叙事,不必做任务引导箭头。

攻击键与对话键不冲突
命中稳定扣血
可击败并消失
重启后再战仍正常
遇敌排练
演示线:对话暗示 → 出村 → 击败
AI Prompt · 验收
【角色】你是 Godot 4.7.1 Standard(非 .NET)战斗验收教练,面向零基础学员。 【项目约定】Godot 4.7.1;最小战斗:attack(J)、命中扣血、击败消失、与 interact(E) 不冲突 【任务】根据我填写的现状判断是否达到「最小可玩战斗」,最多 3 条修补建议。 【输出格式】先判达标/未达标;编号建议(操作+现象);我会填:【能否命中/HP/冷却/键位冲突/已知Bug】。 【约束】禁止建议技能树;禁止插件;只针对 Godot 4.7.1。

只放 1–2 只怪。怪多不等于内容多,系统不稳时怪多等于事故多。

演示线走两遍:你自己一遍,找朋友盲玩一遍。盲玩会暴露你习惯性绕开的坑。

若朋友找不到敌人,说明摆位太偏。敌人是内容,也要被看见。

重启后敌人要在。若你用了不会刷新的临时删除,记得用场景实例而不是只在运行时 new 一次且不保存。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。继续补充验收笔记。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。继续补充验收笔记。继续补充验收笔记。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。

本节小练

场记表全勾,备份项目。可演示,才算 Day5 杀青。

Lesson 10 · 总结

第五天,冲突落地。词典更新:

Day5 总结
战斗最小闭环
HP → Hitbox 窗口 → Hurtbox 受伤 → 死亡移除
独立敌人场景与 HP
玩家攻击可命中并防连扣
可击败敌人,键位与对话可共存
课程理念

战斗系统是欲望吸尘器。AI 会不断建议连招、BUFF、暴击。你要反复问:是否服务今日完成定义?不服务就记到以后。克制的导演,才做得出 Demo。

明天 Day6 把地图、角色、NPC、战斗串成完整可玩竖切片并打磨演示。缺哪块,明天先补哪块,再谈包装。

AI Prompt · 日复盘
【角色】你是 Godot 4.7.1 Standard(非 .NET)项目复盘助手,面向零基础学员。 【项目约定】Day5 完成:enemy_bandit、AttackHitbox/Hurtbox、attack=J、max_hp=3;Day6 串联完整 Demo 【任务】写 Day6 用的项目现状填空模板;列出串联演示前最该修的 3 个风险(输入冲突、出生点等,不谈性能)。 【输出格式】可复制模板 + 3 条风险各含「如何验证」。 【约束】禁止插件;只针对 Godot 4.7.1。

五天骨架:地、人、话、打。明天是剪辑日:让四段变成一部可看短片。

口令本写下:攻击键、伤害值、敌人 max_hp、场景路径。数字是可重复的记忆。

标记完成前,确认口令本三行数字与两行路径已写。档案不齐不算收工。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。继续补充验收笔记。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。继续补充验收笔记。继续补充验收笔记。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。

请把本节要点写进口令本,并用一句话告诉自己明天要带着什么现状开工。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。继续补充验收笔记。

本节小练

口述:我怎样造成伤害、怎样判定死亡。说清再标记完成。

课堂练习

敌人可被攻击扣血并击败
同一次挥砍不重复疯狂扣血
对话中不会误触发攻击(或已明确仲裁)

今日作业

1)记录攻击键、伤害、max_hp。
2)截图:命中瞬间与敌人消失。
3)写一句:「我的防连扣策略是 ___。」

本日总结

战斗 = HP + 命中窗口 + 死亡。胜利条件:打得到,打得死,按键不打架。