[手把手带你Godot游戏开发]FlappyBird:3.在哪坠落就在哪飞起来

上一章节 《[手把手带你Godot游戏开发]FlappyBird:2.坠落吧,小鸟》我们已经实现了小鸟的坠落,那么这一章节我们要让它飞起来了

本章节效果图

在这里插入图片描述

首先我们把"Rigidbody2D"更名为"Bird",前文已经提到要保持场景树上每个节点的命名规范合理
在这里插入图片描述

接下来,我们要开始写代码了,大家要养成另外一个好习惯,那就是要保持项目资源整洁。所以先建一个专门用于存放代码文件的目录(项目资源的管理方式并不唯一,但一定要“有法可依有法必依”)
在这里插入图片描述
命名为“Scripts”
在这里插入图片描述

在这里插入图片描述
为“Bird”添加脚本
在这里插入图片描述
把这个脚本的存储路径定位到刚建的"Scripts"文件夹,注意:这个脚本文件的文件名是“Bird.gd”,让节点上的脚本名称和这个节点的名称相同可以便于我们管理代码文件,但这不是必须的。
在这里插入图片描述创建完毕

在这里插入图片描述

双击这个文件,会看到,Godot已经填写了一些默认的代码
在这里插入图片描述
将上面代码中不必要的部分去掉,输入下面的代码,然后运行一下

注意 代码的解释将放在代码片段的注释中

# Bird.gd
extends RigidBody2D

func _physics_process(delta):
	if Input.is_mouse_button_pressed(1):#当按鼠标左键时
		linear_velocity = Vector2.UP*500#给它一个竖直向上的线性速度

看,我们只用了4行代码,就实现了这么多的效果和功能

在这里插入图片描述

接下来,我们想让小鸟像片头图那样扬头飞翔低头下坠

这个细节并不影响游戏的玩法和难度。但是确实影响游戏体验,一扬一追扣人心弦。 大家可以体会一下

# Bird.gd
extends RigidBody2D

func _physics_process(delta):
	if Input.is_mouse_button_pressed(1):
		linear_velocity = Vector2.UP*500
		angular_velocity = -3.0#同时给它一个逆时针的角速度

嗯?头扬得有点过了

在这里插入图片描述

加一些限定条件

# Bird.gd
extends RigidBody2D

func _physics_process(delta):
	if Input.is_mouse_button_pressed(1):
		linear_velocity = Vector2.UP*500
		angular_velocity = -3.0
	if rotation_degrees < -30:#最大仰角30度
		rotation_degrees = -30
		angular_velocity = 0
	if linear_velocity.y > 0.0:#下坠时给它一个顺时针的角速度
		angular_velocity = 1.5

这样,飞翔的效果就更有灵魂了!

在这里插入图片描述

发布了348 篇原创文章 · 获赞 576 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/hello_tute/article/details/104606205