Documentación de Pilas Engine

Source code for pilas

# -*- encoding: utf-8 -*-
# pilas engine - a video game framework.
#
# copyright 2010 - hugo ruscitti
# license: lgplv3 (see http://www.gnu.org/licenses/lgpl.html)
#
# website - http://www.pilas-engine.com.ar

mundo = None
bg = None

import sys
import utils
from mundo import Mundo
import actores
import fondos
import habilidades
import eventos
import sonidos
import colores
import atajos
import escenas
import ejemplos
import interfaz

__doc__ = """
Módulo pilas
============

Pilas es una biblioteca para facilitar el desarrollo
de videojuegos. Es útil para programadores
principiantes o para el desarrollo de juegos casuales.

Este módulo contiene las funciones principales
para iniciar y ejecutar la biblioteca.
"""

if utils.esta_en_sesion_interactiva():
    utils.cargar_autocompletado()

[docs]def iniciar(ancho=640, alto=480, titulo='Pilas', usar_motor='qtgl', rendimiento=60, modo='detectar', economico=True, gravedad=(0, -90), pantalla_completa=False): """ Inicia la ventana principal del juego con algunos detalles de funcionamiento. Ejemplo de invocación: >>> pilas.iniciar(ancho=320, alto=240) .. image:: images/iniciar_320_240.png Parámetros: :ancho: el tamaño en pixels para la ventana. :alto: el tamaño en pixels para la ventana. :titulo: el titulo a mostrar en la ventana. :usar_motor: el motor multimedia a utilizar, puede ser 'qt' o 'qtgl'. :rendimiento: cantidad de cuadros por segundo a mostrar. :modo: si se utiliza modo interactivo o no. :economico: si tiene que evitar consumir muchos recursos de procesador :gravedad: el vector de aceleracion para la simulacion de fisica. :pantalla_completa: si debe usar pantalla completa o no. """ global mundo motor = __crear_motor(usar_motor) mundo = Mundo(motor, ancho, alto, titulo, rendimiento, economico, gravedad, pantalla_completa) escenas.Normal(colores.grisclaro)
[docs]def ejecutar(ignorar_errores=False): """Pone en funcionamiento las actualizaciones y dibujado. Esta función es necesaria cuando se crea un juego en modo ``no-interactivo``.""" mundo.ejecutar_bucle_principal(ignorar_errores)
[docs]def terminar(): """Finaliza la ejecución de pilas y cierra la ventana principal.""" mundo.terminar()
[docs]def ver(objeto, imprimir=True, retornar=False): """Imprime en pantalla el codigo fuente asociado a un objeto o elemento de pilas.""" import inspect try: codigo = inspect.getsource(objeto.__class__) except TypeError: codigo = inspect.getsource(objeto) if imprimir: print codigo if retornar: return codigo
[docs]def version(): """Retorna el número de version de pilas.""" import pilasversion return pilasversion.VERSION
def __crear_motor(usar_motor): """Genera instancia del motor multimedia en base a un nombre. Esta es una función interna y no debe ser ejecutada excepto por el mismo motor pilas.""" if usar_motor == 'qt': from motores import motor_qt motor = motor_qt.Qt() elif usar_motor == 'qtgl': from motores import motor_qt motor = motor_qt.QtGL() else: print "El motor multimedia seleccionado (%s) no esta disponible" %(usar_motor) print "Las opciones de motores que puedes probar son 'qt' y 'qtgl'." sys.exit(1) return motor
[docs]def reiniciar(): """Elimina todos los actores y vuelve al estado inicial.""" actores.utils.eliminar_a_todos() mundo.reiniciar()
anterior_texto = None
[docs]def avisar(mensaje): """Emite un mensaje en la ventana principal. Este mensaje aparecerá en la parte inferior de la pantalla, por ejemplo: >>> pilas.avisar("Use la tecla <esc> para terminar el programa") """ global anterior_texto izquierda, derecha, arriba, abajo = utils.obtener_bordes() if anterior_texto: anterior_texto.eliminar() texto = actores.Texto(mensaje) texto.magnitud = 17 texto.centro = ("centro", "centro") texto.izquierda = izquierda + 10 texto.color = colores.blanco texto.abajo = abajo + 10 anterior_texto = texto
[docs]def abrir_cargador(): """Abre un cargador de ejemplos con varios códigos de prueba. Ejemplo: >>> pilas.abrir_cargador() El cargador de ejemplos se ve de esta forma: .. image:: images/cargador.png """ import cargador cargador.ejecutar() return []