Archive:Python : Résumé des différences entre python 2.6 et python 3

De Centre de Ressources Numériques - Labomedia
Révision de 4 décembre 2016 à 18:45 par Serge (discussion | contributions)

(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à : navigation, rechercher
Retour sur les pages du jeu de voitures


Ressources

GameLogic

Il faut importer GameLogic dans Blender 2.5x alors qu'il était importer automatiquement dans la 2.49 import GameLogic

Adaptation

Blender 2.49 et python 2.6 donnait déjà des alertes dans la console sur les mèthodes obsolètes, si l'option du menu "Game" >> "Ignore Deprecation Warnings" n'est pas cochée. Si, comme moi, vous réutiliser du code trouvé de ci de là, il faut le corriger.

Adaptation Blender 2.49 avec python 2.6 et Blender 2.5x avec python 3.x
Méthode Python 2.6 obsolète Python 2.6 Ptyhon 3

Get controller owner

  1. Get the controller

controller = GameLogic.getCurrentController()

  1. Get the owner

owner = controller.getOwner()

La version courte owner = GameLogic.getCurrentController().getOwner()

  1. Get the controller

controller = GameLogic.getCurrentController()

  1. Get the owner

owner = controller.owner

La version courte owner = GameLogic.getCurrentController().owner

  1. Get the controller

controller = GameLogic.getCurrentController()

  1. Get the owner

owner = controller.owner

La version courte owner = GameLogic.getCurrentController().owner

Get owner property

  1. Get owner prop

a = owner.prop

  1. Get owner prop

a = owner['prop']

  1. Get owner prop

a = owner['prop']

Set a owner property

  1. Set your variable

foo = 1

  1. Set owner property

owner.prop = foo

  1. Set your variable

foo = 1

  1. Set owner property

owner['prop'] = foo

  1. Set your variable

foo = 1

  1. Set owner property

owner['prop'] = foo

Get Objet


  1. Get current scene

scene = GameLogic.getCurrentScene()

  1. get list of objects in scene

objList = scene.objects

  1. Get vehicle object named Car

objCar = objList["OBCar"]

  1. Get current scene

scene = GameLogic.getCurrentScene()

  1. get list of objects in scene

objList = scene.objects

  1. Get vehicle object named Car

objCar = objList['Car'] La version courte objCar = GameLogic.getCurrentScene().objects['Car']

Get Position position = owner.getPosition() position = owner.position position = owner.position
Print print "foo" print("foo")
Set Position owner.worldPosition = [x, y, z] owner.worldPosition = [x, y, z]
Set world orientation

import Mathutils

def owner_orientation(alpha, beta, gamma): euler = Mathutils.Euler(alpha, beta, gamma) owner.worldOrientation = euler.toMatrix()

import mathutils

  1. set objects orientation

def owner_orientation(alpha, beta, gamma): alpha = alpha * 3.1416 / 180 beta = beta * 3.1416 / 180 gamma = gamma * 3.1416 / 180 rot_en_euler = mathutils.Euler([alpha, beta, gamma]) owner.worldOrientation = rot_en_euler.to_matrix()

2to 3

Dans un terminal

2to3 -w exemple.py

crée un fichier bak et modifie l'original !!