Godot Engine 学习笔记 StaticBody2D

本文档详细介绍了 Godot Engine 中 StaticBody2D 的使用,包括其作为2D静态物理体的角色、成员变量的解释,以及如何通过设置不同属性模拟物体碰撞效果。通过创建球和地板的场景示例,展示了 StaticBody2D 在实际游戏开发中的应用,如调整 bounce、constant_angular_velocity、constant_linear_velocity 和 friction 属性来改变物体碰撞行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

StaticBody2D

以下为我对于官方文档的翻译以及使用情况,3.0版本的文档
StaticBody2D官方文档
继承: PhysicsBody2D < CollisionObject2D < Node2D < CanvasItem < Node < Object
类型: Core

简要说明

2D物理学中的静态体。

成员变量

  • float bounce - 身体的弹性。取值范围从0(无反弹)到1(最大弹性)。
  • float constant_angular_velocity - 物体体恒定的角速度。这不会旋转物体,而是影响碰撞的物体,就像它在旋转一样。
  • Vector2 constant_linear_velocity - 恒定的线性速度为物体。这不会移动物体,而是影响碰撞的身体,就像它在移动一样。
  • float friction - 身体的摩擦力值范围从0(无摩擦)到1(最大摩擦)。

说明

2D物理学中的静态体。静态体2D是一个不打算移动的物体。它是理想的环境中的对象,如墙壁或平台。
此外,可以为静态物体设置恒定的线性速度或角速度,这将影响碰撞物体,就好像它在移动(例如,传送带)。

使用

将创建三个场景分别为,球,地板,主场景。
球场景:

  • RigidBody2D(然后单点节点名可以改名,将它改名为ball)
    • Sprite
    • CollisionShape2D(这是设置碰撞区域的)

在这里插入图片描述
然后拉个球的图片进Sprite的texture属性。
在这里插入图片描述
然后选择CollisionShape2D节点,单击它Shape属性的null创建个圆形碰撞区域(也可以是别的形状)。
在这里插入图片描述
在这里插入图片描述
然后场景中的会出现一块半透明蓝色圆形,用它中偏右的一个小点控制它大小,直到正好覆盖整个图形。
在这里插入图片描述
在这里插入图片描述
地板场景:

  • RigidBody2D(然后单点节点名可以改名,将它改名为floor)
    • Sprite
    • CollisionShape2D(这是设置碰撞区域的)

在这里插入图片描述
为Sprite节点的texture属性拉近一张长方形图片,并用CollisionShape2D创建一个长方形碰撞区域。
在这里插入图片描述创建主场景

  • Node2D

通过场景树编辑器上的锁链状按钮实例化Ball和Floor场景的节点各一个,然后摆下位置,球在地板上方。
在这里插入图片描述
在这里插入图片描述
运行下看下。
在这里插入图片描述
将地板场景中StaticBody2D节点的Bounce属性设置为0.5(默认为0无弹性)其他属性为默认值。
在这里插入图片描述
运行。
在这里插入图片描述
将地板场景中StaticBody2D节点的Constant Angular Velocity属性设置为6(默认为0,无角速度)其他属性为默认值,后运行。
在这里插入图片描述
将地板场景中StaticBody2D节点的Constant Linear Velocity属性设置为(200,0)(默认为(0,0),无线性速度)其他属性为默认值,后运行。
在这里插入图片描述
将地板场景中StaticBody2D节点的Friction属性设置为0(默认为1,最大摩擦)其他属性随意,后运行。
在这里插入图片描述
在这里插入图片描述
当摩擦为零,那么与摩擦相关的移动(这里是水平移动)将不会出现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值