1 新建蝙蝠小怪
新建一个CharatBody2D节点Bat(蝙蝠小怪),保存在ememies目录下

2 制作蝙蝠待机动画
1 在它下方新建一个动画节点AnimatedSprite2D,用来制作蝙蝠小怪动画,步骤:
- 添加素材图片Bat.png,有5张图片,所以Hframes设置成5
- 调整offsety坐标为-12(在坐标原点上方,实现漂浮),然后在animation菜单下新建SpriteFrame
- 动画命名为Fly,然后按下图添加动画素材

- 添加Bat.png做动画,横向5帧,竖向1帧,添加后设置动画为加载后自动播放

2 新建一张图片,关联smallshadow.png,作为阴影
3 给碰撞形状

play层级

bat层级

3 小怪受击检测
1 制作小怪碰撞体积
引入Hurtbox节点,组合之前的子节点,跳转连接,并改为可编辑,新增碰撞体积,碰撞框处于enemyhurtbox层

2 物理层级
bat的hurtbox层级

player的SwordHitbox层级

3 更新玩家物理层
Mask新增朝向enemy层
4 蝙蝠击退效果
1 击退方向
击退方向定义在SwordHitbox节点中
swordhitbox.gd
1 | extends Area2D |
2 击退速度
定义在Bat节点中
bat.gd:
1 | extends CharacterBody2D |
使用编辑器添加进入信号

3 同步敌人被击退方向
先获取定义了击退方向的节点SwordHitbox,再将玩家的朝向赋给它
1 | @onready var sword_hitbox: Area2D = $HitboxPivot/SwordHitbox |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 芃狐!





