godot4制作2D游戏05———添加攻击动画
添加新素材
从素材网站上 下载下来新的Player素材
AttackSprite01.png
新增attack的三个特效
新增attack的状态机并添加脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45class_name StateAttack extends State
var attacking: bool = false
func _ready() -> void:
pass
func Enter() -> void:
player.UpdateAnimation("attack")
attack_animation_player.play("attack_" + player.AnimationDirection())
animation_player.animation_finished.connect( EndAttack )
audio.stream = audio_stream
audio.pitch_scale = randf_range(0.9, 1.1)
audio.play()
attacking = true
pass
func Exit() -> void:
animation_player.animation_finished.disconnect( EndAttack )
pass
func Process(_delta: float) -> State:
player.velocity -= player.velocity * decelebrate_speed * _delta
if attacking == false:
if player.direction == Vector2.ZERO:
return idle
else:
return walk
return null
func PhysicsProcess(_delta: float) -> State:
return null
func HandleInput(_event: InputEvent) -> State:
return null
func EndAttack(_newAnimName: String) -> void:
attacking = false创建一个no_attack的动画,设置为auto,表示为默认 展示的,否则图片上会默认 展示第一帧
修改idle和walk的状态机脚本
- 添加按键监听,如果按下攻击键则进入attack模式
- attack动画播放完后,根据用户状态进入walk或idle模式
添加音乐
- 创建一个节点,下面挂载AudioStreamPlayer2D节点
- 在attack脚本中添加export的audioStream,上面那个player用于播放
添加阴影
- 创建一个新的sprite用来放置阴影
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Have a nice day!!