physics_joint_gear_create

Créez un joint d'engrenage en utilisant deux joints rotatifs ou un joint rotatif et prismatique.

Syntaxe:

physics_joint_gear_create(inst1, inst2, joint_1, joint_2, ratio)


Argument La description
inst1 La première instance à se connecter avec l'articulation
inst2 La deuxième instance pour se connecter avec l'articulation
joint_1 Une articulation révolutionnaire définie précédemment
joint_2 Une articulation révolue ou prismatique définie précédemment
ratio Réglez le rapport de vélocité entre les deux articulations


Retourne: index de l'articulation


La description

Si vous voulez créer un engin mécanique sophistiqué, vous pouvez utiliser des engrenages. En principe, vous pouvez créer des engrenages dans GameMaker Studio 2 en utilisant des instances de composition pour modéliser des dents d'engrenage, mais ce n'est pas très efficace et cela peut être fastidieux pour l'auteur! Heureusement, il existe une méthode plus simple, qui consiste à utiliser un engrenage. Pour en faire un dont vous avez besoin d'avoir préalablement défini vos appareils et créé les deux articulations de base qui vont comprendre votre équipement - ceux-ci doivent être constitués d'un joint rotatif et soit un joint prismatique ou un autre joint rotatif. L'image ci-dessous montre comment un équipement serait typiquement créé dans un jeu: Alors qu'est-ce qui se passe? Eh bien, une fois que les deux articulations sont ajoutées dans l'engrenage, l'interaction avec l'une aura un effet sur l'autre, donc dans l'exemple ci-dessus, si vous tournez inst2, inst3 va monter et descendre, ou si vous déplacez inst3 de haut en bas alors inst2 va tourner. Vous pouvez également modifier le rapport d'engrenage, ce qui signifie que vous devez déplacer une instance de plus (ou moins) pour obtenir l'effet désiré. Le code dans l'exemple en bas montre comment quelque chose comme l'image ci-dessus peut être créé.

Remarque: Si vous devez supprimer l'une des deux instances impliquées dans le joint d'engrenage (ou simplement supprimer leurs joints), vous devez d'abord supprimer le joint d'engrenage en utilisant physics_joint_delete() sinon vous aurez une erreur!


Exemple:

var t_fix, g_fix, inst1, inst2, inst3, r_joint, p_joint;
g_fix = physics_fixture_create();
physics_fixture_set_box_shape(g_fix, 40, 10);
t_fix = physics_fixture_create();
physics_fixture_set_circle_shape(t_fix, 10);
physics_fixture_set_density(t_fix, 0.5);
inst1 = instance_create_layer(60, room_height - 30, "Background", obj_Ground);
inst2 = instance_create_layer(40, room_height - 300, "Instances", obj_Cog);
inst3 = instance_create_layer(150, room_height - 300, "Instances", obj_Barrel);
physics_fixture_bind(g_fix, inst1);
physics_fixture_bind(t_fix, inst2);
physics_fixture_bind(t_fix, inst3);
r_joint = physics_create_revolute_joint(inst1, inst2, 40, room_height - 300, -80, 80, 1, 10, 0.5, 1, 0);
p_joint = physics_create_prismatic_joint(inst1, inst3, 150, room_height - 300, 0, 1, -10, 10, true, 0, 0, 0, 0);
physics_create_gear_joint(inst2, inst3, r_joint, p_joint, 0.5);

Le code ci-dessus crée et définit deux fixtures, puis crée trois instances, une "obj_Ground" et deux autres, "obj_Cog" et "obj_Barrel". Les appareils sont ensuite liés à ces instances et deux joints sont créés. Un joint rotatif entre le sol et le pignon, et un joint prismatique entre le sol et le canon. Enfin, un joint d'engrenage est créé entre les instances de denture et de cylindre en utilisant les joints rotatifs et prismatiques définis précédemment.


Arrière: Articulations
Suivant: physics_joint_delete
© Copyright YoYo Games Ltd. 2017 Tous droits réservés