J'essaie d'apprendre Python, (j'ai 2.5.4) en écrivant un jeu de serpent, mais je suis coincé. Certains entiers se transforment en flotteurs et ne cessent de changer au hasard, du moins de mon point de vue :)Python change Integer dans Float par lui-même
Le problème est que modifié par Snake.spawnPoint
obtient Cam.move()
print Snake.spawnPoint # first time, this returns '[25, 20]' ,which is good.
Cam.Move()
print Snake.spawnPoint # after the method, the value is '[26.0, 21.0]', and that's bad
Après cela, ils dérive juste.
Et voici la méthode:. (Il n'a rien à voir avec le spawnPoint
def Move(self):
self.vel[0]+=(self.target[0]-self.cen[0])*self.k
self.vel[1]+=(self.target[1]-self.cen[1])*self.k
if self.vel[0] > self.friction: self.vel[0]-= self.friction
elif self.vel[0] < self.friction: self.vel[0]+= self.friction
else: self.vel[0] = 0
if self.vel[1] > self.friction: self.vel[1]-= self.friction
elif self.vel[1] < self.friction: self.vel[1]+= self.friction
else: self.vel[1]=0
self.cen[0]+=self.vel[0]
self.cen[1]+=self.vel[1]
Le spawnPoint
est une constante que je joins au corps du serpent quand il fraye je l'aime d'être une liste parce que il a le corps du serpent fait des listes, et la méthode de rendu utilise index()
pour faire des choses.
le code ne semble pas correspondre ici, donc je l'ai compressé. quelqu'un peut-il prendre un coup d'oeil? Merci http://www.mediafire.com/?zdcx5s93q9hxz4o
Veuillez essayer de réduire le code à un exemple minimal montrant votre problème (cela pourrait aussi vous aider à trouver le problème vous-même) – second
Eh bien, je ne peux pas le réduire parce que je ne sais pas ce qui ne va pas Snake.spawnPoint 'est changé par' Cam.move() ', j'ai oublié de le mentionner dans la description – andrewrocks
@andrew: Vous pourriez juste mettre deux déclaration d'impression autour de l'endroit quand entier change en flotteur pour voir si cela se passe effectivement. Est-ce que vous faites une division là-bas? – SilentGhost