Navigation

    CreatiCode Scratch Forum

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

    在二维物理中使用力

    二维积木
    1
    1
    159
    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

      介绍

      添加角色的物理实体后,二维物理引擎会管理这个角色,使其按照物理规律移动和转动。要影响角色的行为,我们可以对它施加一些外力,而物理引擎将计算该物体将怎样被这个外力影响。

       
       

      施加外力

      要施加外力,你可以使用以下积木:

      d69920f0-ae22-421e-b157-7b0e63854e75-image.png

       
      这个积木采用 2 个输入参数:外力的强度以及施加这个力的方向。这里的方向与“面向方向”积木中的方向一样:0 度方向指向上方,90 度方向指向右侧,等等。

      注意,外力会一直推动物体,所以它的效果会持续下去。

       
       

      施加外力例子

      在这个程序中,我们添加了一个篮球,它会因为重力而掉落。如果我们在向上方向添加一个 5000 的推力,篮球就会开始向上漂浮,因为这个推力比球的重力要更大:

      e2.gif

       
       

      防止受力移动/旋转

      当对物体施加力时,它可以使物体移动或转动。如果我们不希望物体在外力作用下发生移动或旋转,我们可以给物理引擎一些限制。例如,我们可以告诉物理引擎“这个物体不会因为外力而移动”,然后物理引擎作计算的时候会假设这个物体保持原地。

      你可以使用以下 2 个积木来添加或删除此类限制:

      ae0213c0-f3bb-4afa-9fb2-71c164fdff90-image.png

       
      如果选择“是”,则将应用限制;如果选择“否”,则限制将被取消。

      请注意,这些限制仅限于物体如何响应外力。添加这些限制后,你仍然可以直接设置物体的移动或旋转速度。

       
       

      在固定位置施加外力

      上面的“施加外力”积木会在物体的中心推动它,即使物体在移动中,所以它不会让物体产生旋转。

      有时我们需要在世界中的一个固定位置添加外力。例如,如果我们正在模拟正在吹气的风扇,那么这个气流会从特定的位置推动其他物体。

      你可以使用以下积木来指定外力及其位置:

      fbcec902-0dc2-45b6-8907-b111d1c676f2-image.png

       
      2 个新添加的输入参数是施加外力的 X 和 Y 位置。

       
       

      示例:在某固定位置添加外力

      在这个例子中,我们在世界中放置了一根高大的棍子,并阻止它因受力而移动。如果我们在 X = 0 和 Y = 50 处(即中心点的上方)添加一个向右推的外力,棍子将开始顺时针旋转。如果我们在 Y = -50 的位置(即中心点的下方)施加相同的外力,棍子将沿相反方向旋转。

       
       

      移除所有外力

      你可以向一个对象添加多个外力。要删除所有这些外力,你可以使用以下积木:

      b6eb7a43-7843-4285-bd30-133746278485-image.png

       
       

      添加脉冲

      脉冲是在很短时间内施加的力,而上面描述的外力是连续施加的力。比如我们踢足球,脚接触球的时间很短,所以应该用脉冲来模拟它的作用;另一方面,要发射火箭,我们需要不断地把它推得越来越高,所以这个推力应该用持续的外力来模拟。

      以下是更多例子:

      • 用连续的外力模拟:汽车发动机、风、直升机螺旋桨;
      • 用瞬时的脉冲模拟:从地上跳起来,用球拍击打网球,射出子弹;

      要添加脉冲,你可以使用以下 2 个积木,它们与添加外力的积木非常相似:

      3d0da781-165f-42d7-a08c-5de81f9fe1cd-image.png

       
      请注意,由于脉冲仅在很短的时间内应用,因此你通常需要使用更大的强度值才能看到其效果。

      此外,我们从不需要“移除一个脉冲”,因为脉冲在被应用那个瞬间后就自动消除了。

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