Saludos IrvingProg,
bueno respondiendo a tu pregunta, en la siguiente parte del codigo al parecer existe un error:
- Código: Seleccionar todo
- self.animacion_detenido = pilas.imagenes.Grilla("./data/personajei.png", 8)
 self.animacion_caminar = pilas.imagenes.Grilla("./data/personajei.png", 7)
 self.animacion_caminar2 = pilas.imagenes.Grilla("./data/personajei.png", 9)
cuando deseas crear un actor que contiene varias animaciones debes crear una grilla que 
contiene todos los cuadros.
eso se hace de la siguiente manera.
- Código: Seleccionar todo
- actor = pilas.actores.Actor()
 self.animacion = pilas.imagenes.Grilla("./data/personajei.png", 10)
 # asignamos a actor la grilla
 animacion.asignar(actor)
 
suponiendo que personajei.png tiene 10 cuadros 
y si ahora quieres mostrar el cuadro 7 debes escribir:
self.animacion.definir_cuadro(7)
self.animacion.asignar(actor)
ahora en la parte del codigo siguiente:
- Código: Seleccionar todo
- irving = pilas.actores.Actor(jugador)
 
deberia ser
- Código: Seleccionar todo
- # para crear una instancia ya que (pilas.actores.Actor('recibe_imagen.png')) recibe una imagen y no una clase
 i
 rving = jugador()
 
 
cree un ejemplo  muy claro de como se usan las grillas, al parecer el codigo
que escribiste lo adaptaste de la documentacion y en esa parte se estaban ocupando mas de un archivo con animaciones.
bueno qui va el codigo.
ocupe a pingu.png que esta dentro de la imagenes de el motor.
puse algunos comentarios para que entiendas mas claro, espero que sirva.
Saludos
- Código: Seleccionar todo
- #!/usr/bin/python
 
 # ######################
 # Juego:
 # Irving Rodriguez
 # Usando libreria pilas
 # ######################
 
 #Imporando la libreria
 import pilas
 
 #iniciando pantalla, y nombre
 pilas.iniciar(titulo = "irving-juego")
 
 #Creando actor 'jugador'
 class jugador(pilas.actores.Actor):
 
 def __init__(self, x=0, y=0):
 pilas.actores.Actor.__init__(self, x=x, y=y)
 # cargamos una grilla de 10 cuadros horizontales
 self.animacion= pilas.imagenes.Grilla("pingu.png", 10)
 
 # variable que controla el avance de cuadro a cuadro
 self.paso = 0
 
 # variable encargada de la velocidad que se desplaza pingu
 self.velocidad = 5
 
 def en_movimiento(self, derecha = True):
 # si derecha == True avanza a la derecha
 if derecha == True:
 self.x += self.velocidad
 # de lo contrario avanza a la izquierda
 elif derecha == False:
 self.x -= self.velocidad
 
 # definimos los cuadros de animacion que queremos mostrar
 self.cuadros = [5, 5, 6, 6, 7, 7, 8, 8, 9, 9]
 
 
 # esta funcion es la encargada de moverse entre un cuadro y otro
 def avanzar_animacion(self):
 # avanzamos un cuadro
 self.paso += 1
 
 # si llega al ultimo cuadro volver al inicio
 if self.paso >= len(self.cuadros):
 self.paso = 0
 
 # ejecuta funciona anterior
 avanzar_animacion(self)
 
 # mostramos los cambios en pantalla
 self.definir_cuadro(self.cuadros[self.paso])
 
 
 
 def en_reposo(self):
 # mostramos cuadro 4 de pingu en reposo
 self.definir_cuadro(4)
 
 
 
 def definir_cuadro(self, indice):
 #cambiamos de cuadro actual al que contiene la variable indice
 self.animacion.definir_cuadro(indice)
 self.animacion.asignar(self)
 
 
 # creamos una instancia de nuestra clase jugador con el nombre irving
 irving = jugador()
 
 irving.en_reposo()
 
 
 
 def presionamos_tecla(eventos):
 
 if pilas.mundo.control.izquierda:
 irving.en_movimiento(derecha = False)
 
 elif pilas.mundo.control.derecha:
 irving.en_movimiento(derecha = True)
 # si hemos dejado de presionar las flechas izquierda o derecha
 # mostramos a pingu en reposo
 else:
 irving.en_reposo()
 
 
 pilas.eventos.actualizar.connect(presionamos_tecla)
 
 # Cargando jugador
 
 #ejecutamos el codigo
 pilas.ejecutar()