physics_joint_wheel_create

车轮关节简单地将活塞和旋转关节结合在一起,就像安装在汽车减震器上的车轮一样。指定关节的锚点以及要关节的两个启用了物理的实例,第一个实例将作为关节的"实体",而第二个实例将作为"车轮",并允许围绕关节轴自由移动。你也可以设置一个轴向量,这是一条假想的线,关节将沿着这条线充当"弹簧",允许车轮在遇到障碍物时沿着它上下反弹(很像活塞关节)。下图说明了这一点:

Wheel joint illustration如果选择启用马达,则第二个实例将围绕固定位置旋转,您可以设置用于实现所需马达速度 (N/m) 的最大马达扭矩以及马达应该转动的速度。由于车轮关节还有一个可以沿其移动的轴,因此可以设置振荡频率 (以 Hz 为单位) 以及关节的阻尼比-您可能需要使用这些值来微调它们,建议您从较小的值开始并递增它们,直到获得所需的效果。

与所有关节一样,如果将 "col" 值设置为 true,则两个实例可以相互作用并发生碰撞,但是如果它们发生碰撞事件,则只能发生碰撞,但是如果设置为 false,则无论发生什么情况,它们都不会发生碰撞。

 

语法:

physics_joint_wheel_create(inst1, inst2, anchor_x, anchor_y, axis_x, axis_y, enableMotor, max_motor_torque, motor_speed, freq_hz, damping_ratio, col)

参数类型描述
inst1Object Instance与关节连接的第一个实例
inst2Object Instance与关节连接的第二个实例
anchor_xReal游戏世界中关节定位的 X 坐标
anchor_yReal游戏世界中关节定位的 Y 坐标
axis_xReal车轮轴向量的 X 分量
axis_yReal车轮轴向量的 Y 分量
enableMotorBoolean马达是否应该启动 (true) 或不启动 (false)
max_motor_torqueReal设置用于实现所需马达转速的最大马达转矩(单位:牛顿/米)
motor_speedReal这是马达应该旋转的速度
freq_hzReal这是关节的振荡频率,单位为赫兹
damping_ratioReal关节的阻尼比
colColour这两个实例是否可以碰撞 (true) 或不碰撞 (false)

 

返回:

Physics Joint ID

 

例子:

var mainFixture = physics_fixture_create();
physics_fixture_set_box_shape(mainFixture, 128, 32);
var wheelFixture = physics_fixture_create();
physics_fixture_set_circle_shape(wheelFixture, 32);
var o_id = instance_create_layer(x+25, y + 100, "Instances", obj_Wheel);
physics_fixture_bind(mainFixture, id);
physics_fixture_bind(wheelFixture, o_id);
physics_joint_wheel_create(id, o_id, o_id.x, o_id.y, 0, 1, true, 10, 1, 15, 6, false);
physics_fixture_delete(mainFixture);
physics_fixture_delete(wheelFixture);

上述代码创建并定义了两个新的装置。然后,这些装置将绑定到调用实例和创建的新实例,然后应用控制盘关节来连接它们,之后,装置将从内存中删除。