[Pygame] Problema de asignación de valor a variable

Agrupa todas las consultas sobre los lenguajes de programacion como C, C++, Python, Java ...

[Pygame] Problema de asignación de valor a variable

Notapor xRodak » Lun Jul 16, 2012 4:36 am

Buenas tardes, he estado mucho tiempo intentando resolver un gran problema, lamentablemente no he podido resolverlo, pero al menos ya sé que es lo que sucede . . .

Veran, tengo una variable "self.mapa", y en una función completamente aparte, tengo una variable interna de la función llamada "colisiones", y cuando le asigno un valor a la variable (tabla) colisiones, por una extraña razón se cambia el valor en self.mapa, no sé si me explico, ahora pondré el error:

def crearColisiones(self):
colisiones=self.colisiones
for y in range(self.height):
for x in range(self.width):
if self.colisiones[y][x]:
colisiones[y][x]=1
else:
colisiones[y][x]=None
self.colisiones=colisiones
self.colisiones=colisiones
def update(self,screen,vx,vy,rect):
x = 0 ; y = 0 ;z = 0
for capa in self.mapa:
for fila in capa:
for sprite in fila:
if sprite!=None:
self.mapa[z][y][x].update(screen,vx,vy)
else:
pass
x += 1
x=0
y += 1
y = 0
z += 1


Traceback (most recent call last):
File "C:\Users\Ednar\Desktop\Tarea4enunciado\Tarea4 RPG\Tarea 3 RPG\PY Game\RPG\Test.py", line 46, in <module>
main()
File "C:\Users\Ednar\Desktop\Tarea4enunciado\Tarea4 RPG\Tarea 3 RPG\PY Game\RPG\Test.py", line 41, in main
MapTest.update(screen, Player.vx, Player.vy, Player.rect)
File "C:\Users\Ednar\Desktop\Tarea4enunciado\Tarea4 RPG\Tarea 3 RPG\PY Game\RPG\maps.py", line 101, in update
self.mapa[z][y][x].update(screen,vx,vy)
AttributeError: 'int' object has no attribute 'update'


Como se dan cuenta, en "colisiones[y][x]=1" le entregué un "int" (entero) a la tabla colisiones, luego, mágicamente, en la función "update" que está más abajo me señala que el entero no tiene atribuida la funcion update (es una función de aparte, de una clase que hice, que le puse el mismo nombre por cumplir una función similar). Si a la tabla "colisiones", en vez de entregarle un número entero, le entro un string, me sale el siguiente error:

self.mapa[z][y][x].update(screen,vx,vy)
AttributeError: 'str' object has no attribute 'update'


Y en ningún momento he cambiado los valores de self.mapa. Por otro lado, si borro la linea "colisiones[y][x]=1" y agrego un pass (para que no haga nada), el error se repara, y se activa el "self.mapa[z][y][x].update(screen,vx,vy)" normalmente.

En palabras simples, le doy valores a una función y se modifican los valores de otra, haciendo que falle completamente mi programa.
Alguno sabe a que puede deberse este tan extraño error?

Gracias de antemano.
xRodak
 
Mensajes: 6
Registrado: Dom Jul 15, 2012 6:08 pm

Re: [Pygame] Problema de asignación de valor a variable

Notapor xRodak » Mar Jul 17, 2012 4:26 am

Problema solucionado, la primera capa del mapa estaba mal hecha, lo que causo un error sumamente extraño en el resto del código.
xRodak
 
Mensajes: 6
Registrado: Dom Jul 15, 2012 6:08 pm


Volver a Sobre lenguajes de programación

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado