Aller au contenu principal

Référence API Python

scene — la scène existante

objets(), trouver(), vider(), gravite().

Le module scene donne accès à ce qui est déjà dans le labo, y compris posé à la souris. Tout ce qu'il change est appliqué à la fin du script, en une action annulable.

scene.objets()

Tous les objets présents, dans l'ordre de la scène. Rend une liste d'objets. Anglais : objects().

scene.trouver(type=None, materiau=None)

Les objets qui correspondent aux deux critères, tous deux facultatifs. Types acceptés : rectangle, cercle/circle, engrenage/gear, sol/ground, dessin/forme/shape/freeform, pivot, ressort/spring (et les anciens moteur, levier, came). Matériau : le nom français ou anglais. Anglais : find(type=, material=).

Erreur : Le type « bille » n'existe pas. Ceux du labo : rectangle, circle, cercle, …

scene.vider()

Vide la scène — tout, y compris ce qui est posé à la souris. Un script qui commence par scene.vider() repart d'une feuille blanche ; Ctrl+Z rend la scène entière. Anglais : clear(). Vider la scène libère aussi la caméra.

scene.gravite(valeur=9.81)

Règle la gravité en m/s², de −50 à 50. 0 : apesanteur ; 1,62 : la Lune ; 9,81 : la Terre ; 24,8 : Jupiter ; négative : tout monte. Anglais : gravity().

Erreur : La gravité va de -50 à 50 m/s² (tu as demandé 100). … Au-delà de 50, un tas d'objets ne se pose plus jamais.

Exemple

print(len(scene.objets()), "objets dans la scene")
for r in scene.trouver(type="engrenage"):
    print("roue de", r.dents, "dents en", r.x, r.y)
scene.gravite(1.62)          # sur la Lune
Essayer ce code dans l’atelier Python

Notes

  • Un script qui ne fait que lire (des print) ne laisse rien dans l'historique.
  • Après scene.vider(), les objets rendus par scene.objets() avant l'appel sont encore utilisables pour lire, mais ils disparaîtront.
  • Le bouton Gravité de la barre ne connaît que 9,81 et 0 ; une gravité réglée par script reste jusqu'au prochain changement.