« Soya/Python base 5 » : 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 53 :
# Boucle de tous les évenements Soya / SDL.
# Chaque évenement est un tuple ; la première valeur indique les types d'évènements
# et les autres valeurs dépendant du type. TheLes followingévenements eventexistants types existsont :
# - (KEYDOWN, keysym, modifier) where keysym isest the key'sun code de touche (aune constante K_* constant)
# andet modifierun ismodifieur aest flagun combiningdrapeau somecombinant ofplusieurs theconstantes MOD_* constant (topour tester testla theprésence presencedu
# of a modifiermodifieur, do e.g. for left shift: modifier & soya.sdlconst.MOD_LSHIFT).
# - (KEYUP, keysym, modifier)
# - (MOUSEMOTION, x, y, xrel, yrel) where x andet y aresont theles mousecoordonnées coordinatesde la souris (inen pixels)
# pixel) ;, xrel andet yrel aresont thedes relativecoordonnées mouserelatives coordinatesde la souris (thela differencedifférence sinceentre le prochain évenement).
# - (MOUSEBUTTONDOWN, button, x, y) où button est le numéro de bouton de souris et x et y sont les coordonnées de la souris.
# next mouse motion event).
# - (MOUSEBUTTONDOWN, button,Les x,numéros y)de whereboutons buttonde isla thesouris mousesont button number and:
# x- and1 y: are the mouse coordinates. Mouse buttons are :gauche
# - 12 : leftmilieu
# - 23 : middledroite
# - 34 : rightmolette haut
# - 45 : rollmolette upbas
# - 5 : roll down
# - (MOUSEBUTTONUP, button, x, y)
# - (JOYAXISMOTION, axis, value) XXX
Ligne 75 ⟶ 74 :
for event in soya.process_event():
# ChecksVerification fordes keytouches down (press) eventspréssées.
if event[0] == soya.sdlconst.KEYDOWN:
# TheLes upflèches anddu downhaut arrowset setdu thebas caterpillarmet la vitesse (speed) tode ala negativechenille orà une valeur positive valueou négative.
if event[1] == soya.sdlconst.K_UP: self.speed.z = -0.2
elif event[1] == soya.sdlconst.K_DOWN: self.speed.z = 0.1
# TheLes leftflèches andgauche rightet arrowdroite modifymodifient thela rotationvitesse speedde rotation.
elif event[1] == soya.sdlconst.K_LEFT: self.rotation_y_speed = 10.0
elif event[1] == soya.sdlconst.K_RIGHT: self.rotation_y_speed = -10.0
# PressingEn theappuyant escapesur oréchap ou 'q'la keyboucle will exit theprincipale main_loop mainloopsera quittée, andet termine ainsi thusle terminateprogramme
# the program. soya.MAIN_LOOP.stop() isest thela rightbonne waymanière tode end yourterminer l'application, andet cause
# causesle theretournement de la méthode MainLoop.main_loop() method to return.
elif event[1] == soya.sdlconst.K_q: soya.MAIN_LOOP.stop()
elif event[1] == soya.sdlconst.K_ESCAPE: soya.MAIN_LOOP.stop()
# ChecksOn forregarde keyles uptouches (release)qui eventsne sont pas appuiées.
elif event[0] == soya.sdlconst.KEYUP:
# WhenQuand uples ortouches downhaut arrowsou arebas releasedsont libérés, thela vitesse (speed) isest setremise toà zero.
if event[1] == soya.sdlconst.K_UP: self.speed.z = 0.0
elif event[1] == soya.sdlconst.K_DOWN: self.speed.z = 0.0
# WhenQuand leftles orflèches rightgauche arrowset aredroite releasedsont libérés, thela rotationvitesse speedde rotation isest setmise toà zero.
elif event[1] == soya.sdlconst.K_LEFT: self.rotation_y_speed = 0.0
Ligne 113 ⟶ 112 :
soya.MAIN_LOOP.stop()
# DoOn thefait la rotation.
self.rotate_y(self.rotation_y_speed)
Ligne 122 ⟶ 121 :
 
 
# La classe CaterpillarPiece hasnn'ta pas changedchangé sincedepuis thele previousdernier tutorial.
 
class CaterpillarPiece(soya.Body):
Ligne 141 ⟶ 140 :
 
# Création de la tête de la chenille et de 10 pièces de son corps.
# Creates a caterpillar head and 10 caterpillar piece of body.
 
caterpillar_head = CaterpillarHead(scene)
Ligne 151 ⟶ 150 :
previous_caterpillar_piece.x = i + 1
# CreatesCréation ade lightla lampe.
 
light = soya.Light(scene)
light.set_xyz(2.0, 5.0, 0.0)
 
# Création de la caméra.
# Creates a camera.
 
camera = soya.Camera(scene)