Aller au contenu principal

Programmer avec Python

Créer des objets

rectangle, cercle, engrenage, sol, dessin : les paramètres communs et ceux de chacun.

Les cinq fonctions de création

FonctionCe qu'elle créeSes paramètres propres
rectangle()une planche, un bloclargeur, hauteur (100 × 50 sans rien dire)
cercle()une bille, une rouerayon (40)
engrenage()une roue dentéedents (20), module (10)
sol()un plancher fixelargeur, hauteur (800 × 40)
dessin()une forme librepoints (liste de (x, y))

Et les paramètres communs à toutes :

ParamètreAlias anglaisDéfautRôle
x, y—0, 0le centre, en mm ; y vers le bas
angle—0l'inclinaison en degrés, sens des aiguilles
materiaumaterial"standard"bois, caoutchouc, verre, glace, pierre, acier, or, helium, standard
couleurcolorcelle du matériau"#ef4444" ou un nom CSS
fixefixedFalse (un sol : toujours fixe)True : la pièce ne bouge pas
etagefloor0l'étage, de 0 à 15 — voir Étages et calques

Chaque fonction rend l'objet créé : garde-le dans une variable pour le relier, le lire ou le suivre avec la caméra.

Manipulation

scene.vider()
sol(x=0, y=250, largeur=2000)
rampe = rectangle(x=-300, y=100, largeur=500, hauteur=20, angle=20, fixe=True, materiau="bois")
bille = cercle(x=-500, y=-50, rayon=25, materiau="acier", couleur="#3b82f6")
roue = engrenage(x=300, y=150, dents=30, module=6, materiau="acier")
pivot(x=300, y=150, corps=roue, moteur=True, vitesse=-30)
etoile = dessin(points=[(500, 100), (560, 200), (440, 200)], couleur="#f59e0b")
Essayer ce code dans l’atelier Python

Observation

La bille descend la rampe, saute et roule vers la roue qui tourne. La commande scene.vider() en tête a effacé tout ce qu'il y avait avant — y compris ce que tu avais posé à la souris ; sans elle, le script n'aurait remplacé que ses propres objets de la fois d'avant.

Deux détails qui comptent

  • Un engrenage créé par script naît libre (pas fixé), contrairement à un engrenage tracé à la souris : sans pivot, il tombe. Donne-lui un pivot() ou fixe=True.
  • Le sol n'a pas de fixe : il l'est par nature.

Lire ce qu'on a créé

roue.x, roue.rayon, roue.dents, bille.masse, rampe.largeur, etoile.type … Voir Les objets. On peut aussi régler x, y et angle après coup : bille.x = 0.