1. 在场景中创建一个 StaticBody2D 节点。 2. 添加一个 CollisionShape2D 节点作为子节点,为其设置一个矩形形状作为碰撞体(例如,一个长方形的地面)。 3. 可以添加一个 Sprite 节点作为子节点,用于显示地面的纹理(可选)。 4. 设置 StaticBody2D 的 collision_layer 和 collision_mask ,以确保它能够与其他物理...
这里我们先写下,当游戏完成时(胜利或失败)计时与玩家都会暂停 新建个area用于检测玩家进入,需要注意的是area需设置为只能与玩家进行交互,因此将collision中mask设置为2,player中的layer设置为2,这样area就只能检测到player的collision是否进入了。 随后新建一个场景用于放置胜利失败后的展示ui 同时,建好胜利失败不同textu...
环境素材: https://anokolisa.itch.io/sidescroller-pixelart-sprites-asset-pack-forest-16x16 知识点 Collision Layer 碰撞层 节点自身所处的碰撞层 一个节点可以同时位于多个不同的碰撞层上,也可以不处于任何碰撞层 Collision Mask 碰撞遮罩/碰撞掩码
在不同节点中名字可能不一样,但是都以这样的形式在检视面板中示人,比如选中Player场景中的CharacterBody2D节点打开Collision部分: CharacterBody2D的这两个属性实际上是来自CollisionObject2D的`collision_layer`(碰撞层,下文简称layer或层)和`collision_mask`(碰撞掩码,下文简称mask或掩码)。 layer指的是该物件“所在”...
其实就是Mask是否等于1的意思。无效就是将节点从Mask 1中移除。 在Godot3中,当然提供了处理方法,即: set_collision_mask_bit 。看一下文档的说明: void set_collision_mask_bit (bit: int, value: bool)Sets individual bits on the collision_mask bitmask. Use this if you only need to change one ...
Godot中如何用数字表示collision_mask 先用二进制写出来,1代表激活,0代表没激活,最右边代表第一层。然后转换成十进制。 举例说明: 二进制是1,转成十进制是1,collision_mask=1。 二进制是1101,转成十进制是13,collision_mask=13。 二进制1000001100001转成十进制是4193,collision_mask=4193。
Mask 即掩码,在代码中为collision_mask,它表示当前物体所关心的其他的碰撞图层,可包含多个图层 碰撞图层很好理解,类似PhotoShop/GIMP/Krita这些图片处理软件中的图层概念,用于把不同的内容分离开来,游戏中碰撞节点一般处于某一个特定的碰撞图层中。那么掩码又是啥意思呢?它实质代表的意义是这个物体需要与哪些图层进行碰撞...
闹麻了也闹不明白,c..今天在尝试获取 collision_mask 的时候总是对不上数。预想是:1层返回1,2层返回2,3层返回3结果是:1层返回1,2层返回3,3层返回7后来才发现每层都有个值1 = 1(0位,第1层)2
AnimatedSprite、CollisionShape2D、VisibilityNotifier2D,设置为无法选中。 1.4 设置节点 将RigidBody2D的Gravity Scale属性设置为0,这将防止Mob随重力掉落。 将RigidBody2D的CollisionObject2D——Collision——Mask的复选框去除。这个选项用于扫描物理碰撞,去除复选框以确保Mob不会互相碰撞。
CollisionL..对CollisionObject2D使用set_collision_layer_valve(int,bool)方法。可以在编辑器内用“搜索帮助”查找“collision”找到相关方法后者是Circle