J'ai ce script dans un jeu que je fais. Ceci sera utilisé dans le moteur de jeu de Blender. Blender exécute continuellement des scripts de haut en bas, donc si je déclare une variable au début du script, il continue d'être initialisé encore et encore.Comment changer de façon permanente une variable dans une boucle de jeu Python
#The current location of the object
loc_x = obj.getPosition()[0]
loc_y = obj.getPosition()[1]
#The velocity of the object
velocity_x = 0.09
velocity_y = 0.03
#If the location of the object is over 5, bounce off.
if loc_x > 5:
velocity_x = (velocity_x * -1)
if loc_y > 5:
velocity_y = (velocity_y * -1)
#Every frame set the object's position to the old position plus the velocity
obj.setPosition([(loc_x + velocity_x),(loc_y + velocity_y),0])
Au fond, mon problème est que dans le cas des boucles, je change la variable de sa valeur initiale à l'inverse de son ancienne valeur. Mais parce que je déclare la valeur de la variable au début du script, les variables de vélocité ne restent pas sur ce que je le change.
J'ai besoin d'un moyen de changer la valeur de la variable de façon permanente ou de ne le déclarer qu'une seule fois.
Merci!
À côté: "si les boucles" n'existent pas. "Si" s ne boucle pas. – Thomas
Je pense qu'il nous manque une partie de la logique ici. Les valeurs de velocity_x et velocity_y sont certainement différentes à la fin du début. Est-ce que tout est enveloppé dans une fonction? –
Il est impossible de répondre à votre question sans montrer plus de votre code. Comme écrit, votre code fonctionnera bien. Avez-vous des fonctions dans votre code? Utilisez-vous l'instruction 'global'? –