Godot4.3类星露谷游戏开发之【小鸡NPC】

千里之行,始于足下

零、 笔记

创建可路径导航、动态避障的小鸡

一、认识导航节点

为了实现小鸡路径导航、动态避障的效果,要用到三种导航节点:

(一)智能驾驶汽车

装小鸡的智能驾驶汽车 -> NavigationAgent2D

(二)人工智能

汽车注册使用的人工智能,用于规划路径 -> NavigationServer2D

(三) 场地

导航区域,确定汽车行驶范围 -> NavigationRegion2D

二、创建小鸡

(一)创建小鸡动画

第一步,创建新场景,以 CharectorBody2D 作为场景根节点,改名为:小鸡

根节点
第二步,分别添加 AnimationSprite2D 动画节点和 CollisionShape2D 碰撞节点作为子节点;

子节点
第三步,选中 AnimationSprite2D 动画节点,在检查器中新建 SpriteFrames 动画帧;

SpriteFrames
第四步,在编辑器 SpriteFrames 底栏中使用精灵表创建动画帧;

创建动画帧
在文件系统 res://资产/Sprout Lands - Sprites - Basic pack/Characters 路径下打开 Free Chicken Sprites.png 文件夹;

打开Free Chicken Sprites.png
第五步,依图中顺序点击添加,创建动画(Tips:Ctrl + 鼠标滚轮 可以调整视图大小) ;

创建动画
第六步,设置为自动播放,调节帧速,并命名为 空闲

空闲
第七步,同上,设置如图,创建行走动画;

行走

(二)添加碰撞体

第一步,选中 CollisionShape2D 节点,并在检查器中新建 圆形碰撞

圆形碰撞
第二步,调整 圆形碰撞 至比小鸡略小;

比小鸡略小
第三步,新建【 res://场景/NPC/小鸡 】文件夹,并保存 小鸡 文件;

res://场景/NPC/小鸡
新建res://场景/NPC/小鸡文件夹
第四步,打开 项目设置 ,为2D物理层命名;

为物理层命名
第五步,分别设置小鸡和玩家的物理层;

设置小鸡和玩家的物理层

三、让小鸡动起来

(一)行走/空闲状态切换

在小鸡真正动起来前,给它一个计时器 Timer ,告诉它什么时候走,什么时候停:

行走/空闲状态切换
第一步,给小鸡一个计时器 Timer

Timer
第二步,为 小鸡 节点附加脚本;

extends CharacterBody2D

@export var 等待时间: float = 5.0

var 当前状态: StringName = "空闲"

@onready var animated_sprite_2d: AnimatedSprite2D = $AnimatedSprite2D
@onready var timer: Timer = $Timer


func _ready():
	# 配置定时器
	timer.timeout.connect(切换状态)



func 切换状态():
	# 切换状态
	if 当前状态 == "空闲":
		当前状态 = "行走"
		animated_sprite_2d.play("行走")
		timer.start(等待时间)# 启动计时器
	else:
		当前状态 = "空闲"
		animated_sprite_2d.play(<
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ForBigData

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值