Juegos no visibles

Si tienes alguna duda sobre cómo usar pilas, o tienes problemas para instalar o hacer algo en pilas comentalo aquí.

Juegos no visibles

Notapor IrvingProg » Sab Ene 08, 2011 3:24 am

Hola.

Apenas estoy comenzando con este motor, y me va bastante bien en el interprete, pero a la hora de ejecutar por ejemplos los minijuegos incluidos, o al yo crear un documento para después ejecutar, no se ve ni siquiera la ventana donde va el juego.

Lo lanzo como archivo y no pasa nada, desde la terminal tampoco se ve nada, solo hago clic en la terminal me saltan estas dos lineas de error:

./ejecutar.py: línea 3: error sintáctico cerca del elemento inesperado `titulo'
./ejecutar.py: línea 3: `pilas.iniciar(titulo = "3 en Raya")'

En el caso de que yo creo el juego con Geany, al lanzarlo desde la terminal me sale este mensaje:

Loading chipmunk for Linux (32bit) [/usr/local/lib/python2.6/dist-packages/pymunk-1.0.0-py2.6.egg/pymunk/libchipmunk.so]


Espero me puedan ayudar.
Saludos
Avatar de Usuario
IrvingProg
 
Mensajes: 24
Registrado: Vie Ene 07, 2011 7:36 pm
Ubicación: México

Re: Juegos no visibles

Notapor pchack » Sab Ene 08, 2011 4:08 am

pienso que el error al guardar un archivo para interpretarlo con el motor, es
que debes incluir al final del codigo la linea
pilas.ejecutar() esto es para capturar los eventos y mantenerse en el bucle principal del juego

Código: Seleccionar todo
# prueba.py

import pilas
pilas.iniciar()

# aqui
pilas.ejecutar()



y lo del juego tres en raya me parece que esta escrito una comilla ' de mas.

sube el codigo de ejecutar.py
que no te funciona para ver que es.

Saludos
pchack
 
Mensajes: 106
Registrado: Lun Dic 13, 2010 12:23 am

Re: Juegos no visibles

Notapor IrvingProg » Sab Ene 08, 2011 5:52 am

El juego que estoy creando, ya lo solucione con la linea que me comentas, ahora tengo otro problema con una actor que estoy creando, con sprites y en la documentación no viene explicado de forma extensa, ya que no lo puedo hacer visible, aquí dejo el código:
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):
      Actor.__init__(self, x=x, y=y)
      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)
        
   def en_movimiento(self):
      self.animacion_actual = self.animacion_caminar
      self.animacion_caminar.asignar(self)
   
   def en_movimiento2(self):
      self.animacion_actual = self.animacion_caminar2
      self.animacion_caminar2.asignar(self)
   
   def en_reposo(self):
      self.animacion_actual = self.animacion_detenido
      self.animacion_detenido.asignar(self)

# Cargando jugador
irving = pilas.actores.Actor(jugador)

irving.en_movimiento()

#ejecutamos el codigo
pilas.ejecutar()


Y los minijuego siguen sin funcionar, no aparece nada en pantalla, ya revise el código y esta correcto:
Código: Seleccionar todo
import pilas
import random

pilas.iniciar(titulo="Asteroides")

# Inicia la escena actual.
import escena_menu
escena_menu.EscenaMenu()
pilas.ejecutar()


En este caso es el de los asteroides. Me tira el sig. error:

./ejecutar.py: línea 4: error sintáctico cerca del elemento inesperado `titulo="Asteroides"'

Gracias.
Avatar de Usuario
IrvingProg
 
Mensajes: 24
Registrado: Vie Ene 07, 2011 7:36 pm
Ubicación: México

Re: Juegos no visibles

Notapor pchack » Sab Ene 08, 2011 7:00 pm

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()
pchack
 
Mensajes: 106
Registrado: Lun Dic 13, 2010 12:23 am


Volver a Consultas, problemas o bugs.

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados

cron