今天是这个项目的 Day 1,回顾了一下昨天做的也没多少内容。
毕竟白天还要上班,只有午休、晚上和摸鱼才有机会推进这个项目。
## Hit Box & Hurt Box
接下来就该做碰撞箱了,我们直接创建两个脚本继承于 `Area2D` ,一个叫 `hit_box.gd` 一个叫 `hurt_box.gd` 。
`hit_box.gd` 只负责保存伤害信息, `hurt_box.gd` 则负责处理受伤的逻辑。
因为我们还没做飞机受伤的逻辑,所以现在我们只需要打个输出调试一下。具体代码如下。


由于我们给 `HurtBox` 和 `HitBox` 创建了类名,所以我们并不需要一个打包场景来保存每个碰撞箱(因为具体的图形是不一样的,打包成场景反而不方便)。这里我们只需要在 `fighter` 场景下添加一个新的`HurtBox` 节点,然后调整一下大小。


这里的大小我稍微调的小一点,这样可以给玩家一种,“这我都能躲过去,我太牛X了!”的错觉。同理敌人的就稍微调大一点让玩家觉得自己射的很准。
子弹的 `HitBox` 也做类似的操作。现在我们就得到了这样的一个结果。

因为机身自己的 `HurtBox` 距离子弹的 `HitBox` 足够近,所以我们可以看到碰撞效果是触发了的。当然后续会通过代码区分一下自己、队友和敌人。