添加Node2D节点,添加AnimatedSprite2D节点。
从精灵表中添加帧
设置加载后自动播放,10FPS,并拖动动画到水平线上
插入死亡区域场景
添加CollisionShape2D节点,设置矩形碰撞形状。按住ALT可对称修改碰撞形状。
重命名Node2D为Slime,保存场景。
Slime场景中,添加RayCast2D节点,设置射线方向,重命名为RayCastRight。同理添加RayCastLeft。
Slime场景添加脚本
extends Node2D
const SPEED = 60
var direction = 1
@onready var ray_cast_right = $RayCastRight
@onready var ray_cast_left = $RayCastLeft
@onready var animated_sprite_2d = $AnimatedSprite2D
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
# 碰到墙壁,修改移动方向,翻转动画
if ray_cast_right.is_colliding():
direction = -1
animated_sprite_2d.flip_h = true
if ray_cast_left.is_colliding():
direction = 1
animated_sprite_2d.flip_h = false
position.x += direction * SPEED * delta