Navigation

    CreatiCode Scratch Forum

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • CreatiCode

    设置二维物体的物理属性

    二维积木
    1
    1
    188
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • info-creaticode
      CreatiCode last edited by admin

      介绍

      每个二维物体都有 3 个重要属性:密度、摩擦系数和弹性系数。当一个角色被添加到物理世界后,其属性将被设置为一些默认值。我们可以使用以下积木来更新这些属性:

      4408aa15-adf3-482a-b84a-ab0f1e31a5e0-image.png

       
       

      密度

      密度控制一个物体有多少物质。具体来说,一个物体的质量等于它的密度乘以它的大小(面积)。对于两个相同大小的物体,密度大的物体会更重。另一方面,当两个物体的密度相同时,越大的物体越重。

      请注意,从物理定律来看,较重的物体不会下落得更快,但它在与较轻的物体碰撞时会“更加强势”。在下面的示例中,这 2 个球的大小相同,但蓝色球的密度是绿色球的 10 倍:

      bb.gif

       
      对于所有的固定的物体,无论你如何设置密度,物理引擎都会假定它们具有无限大的密度。

      对于动态物体,当它的密度为 0 时,物理引擎将假定它具有无限大的密度。该物体不会对外力或重力做出反应,但你仍然可以设置它的速度。基本上,它的行为就像一个“可设置速度”的物体。

       
       

      摩擦系数

      如果两个物体相互接触,并且其中一个物体相对于另一个物体移动时,它们之间就会产生摩擦力,试图阻止这种运动。摩擦系数属性控制两个物体之间摩擦力的大小:0 表示没有摩擦力(完美光滑的接触表面),数值越大就代表越大的摩擦。

      两个物体之间的平均摩擦系数将决定它们之间的摩擦系数。

      例如,下图中斜坡的摩擦系数为 0,左边的盒子的摩擦系数为 100,右边的盒子的摩擦系数为 0。摩擦力使左边的盒子保持原位,而右边的箱子滑下斜坡:
      b7.gif

       
       

      弹性系数

      弹性系数控制物体在碰撞时反弹的强度。当两个物体发生碰撞时,我们取它们的平均弹性系数。如果平均值为 0,则这 2 个对象不会弹回,而是会粘在一起。如果平均值为 100,则它们将以与碰撞前相同的速度弹回。

      在此示例中,方块的弹性系数为 100,而 2 个圆的弹性系数为 100 和 0。
      bc.gif

       
      蓝色圆和方块的平均弹性系数是100,所以蓝色圆会不断的全速反弹。

      绿色圈和方块的平均弹性系数是50,所以绿色圆每反弹一次就会失去一半的移动速度。

       
       

      物理世界四面围墙的物理特性

      初始化物理世界时,物理引擎会在舞台周围添加 4 堵墙,以将物体圈在里面。你可以使用以下积木设置这 4 面墙的物理属性:

      4202025e-2e73-4183-8324-5d566d1e2d9b-image.png

       
      请注意,墙是固定的,因此我们假定它们的密度为 0,无需再设置。你只能设置它们的摩擦系数和弹性系数。

      1 Reply Last reply Reply Quote 0
      • First post
        Last post