« Soya/Python base 6 » : différence entre les versions

Contenu supprimé Contenu ajouté
Seb.bernery (discussion | contributions)
Aucun résumé des modifications
Seb.bernery (discussion | contributions)
Aucun résumé des modifications
Ligne 59 :
self.mouse_y = event[2]
# ComputesLe thecalcul mousedes coordinatescoordonnées inde la souris est en 3D., Camera.coord2d_to_3d takesrenvoie theles coordonnées X andet Y moused'une souris en 2D
# coordinates,et andune ancoordonnée optionaloptionnel Z coordinates (aspuisqu'il itne canootpeut pas bien le gérer, la valeur de Z guesspar thedéfaut thirdest coordinate-1.0 ;).
# Z default to -1.0).
# HereMaintenant, wenous useutilisons forpour Z theles coordonnées Z coordinatesde la chenille dans les ofcoordonnées thedu caterpillarsystème inde thela cameracaméra coordinate:
# system:nous weconsidérons considerque thele mousecurseur cursorest toà bela atmême thehauteur sameque depthla that the caterpillarchenille.
# Thel'opérateur % operatorest isutilisé usedpour forla coordinateconvertion systemdes coordonnées conversion:
# position % coordinate_system
# returnsretourne la position convertedconvertie intodans coordinate_system (possibly position itself if it
# is already in the right coordinate system).
mouse_pos = camera.coord2d_to_3d(self.mouse_x, self.mouse_y, (self % camera).z)
# Then,Alors convertsca theconvertit mousela position intode la souris en système de thecoordonnées scenepour coordinatela systemscène, andet setmet itsles Y
# coordinatecoordonnées tode Y à 0.0, becausecar wenous don'tne wantvoulons thepas caterpillar tod'une startchenille flyingqui !vole
# (remember,souvenez vous que Y isest l'axe thede upperla directionhauteur).
mouse_pos.convert_to(scene)
mouse_pos.y = 0.0
# ComputesCalcul thede speedla Zvitesse coordinatede coordonnée Z ; wenous don'tne wantvoulons apas constantune vitesse constante speed: theplus le curseur fartherest theloin
# mouseet cursorplus is,la thechenille fasterva the caterpillar movesvite.
# ThusAinsi, thela speedvitesse Zde coordinatecoordonnée isZ theest la distance fromentre thela caterpillarchenille toet thela mousesouris, et doit être négative
# and( itcar must-Z beest negative (cause -Zvers isle fronthaut).
self.speed.z = -self.distance_to(mouse_pos)
# Rotations towardvers thela mousesouris.
self.look_at(mouse_pos)
Ligne 95 ⟶ 94 :
 
 
# WeNous changechangeons CaterpillarPiece, soafin itqu'il canpuisse dealgérer with thela variable-speed headde vitesse du Head.
 
class CaterpillarPiece(soya.Body):
Ligne 106 ⟶ 105 :
soya.Body.begin_round(self)
# AsComme thela speedvitesse canpeut beêtre verytrès highélevée, wenous needavons tobesoin takede intoprendre accounten the speed of the previouscompte
# piecela vitesse précédente (thecelle que onel'on weavait arelors movingdu towardmouvement).
# ComputesOn thecalcul nextensuite positionla offutur thepostion previousde piece,la bypièce translatingpar thela piecetranslation byde la piece the
# piece'spar speedle vectorvecteur vitesse de cette même pièce.
previous_next_pos = self.previous + self.previous.speed
# LooksLa towardchenille theregarde previousvers piece'sla nextfutur position de la pièce.
self.look_at(previous_next_pos)
# ComputesCalcul thede speed'sla coordonnée Z coordinatede vitesse. WeNous useutilisons theun distanceespace betweenentre thisune piecepièce andet the
# nextsa prochaine position of the previous one, andet wenous removesupprimons 1.5 becausecar nous avous webesoin wantque eachchaque piece
# tosoit beséparé sepaaratedpar byune distance de 1.5 distance unitsunités.
self.speed.z = -(self.distance_to(previous_next_pos) - 1.5)
Ligne 128 ⟶ 127 :
 
# Creation du Head de la chenille ainsi que 10 pièces de son corps.
# Creates a caterpillar head and 10 caterpillar piece of body.
 
caterpillar_head = CaterpillarHead(scene)
Ligne 138 ⟶ 137 :
previous_caterpillar_piece.x = i + 1
# CreatesCréation ad'une lightlampe.
 
light = soya.Light(scene)
light.set_xyz(2.0, 5.0, 1.0)
 
# Création d'une caméra.
# Creates a camera.
 
camera = soya.Camera(scene)