Directorio artículo
一, Hola, mundo
No hay duda, desde nuestro primer programa Hola mundo comenzó. El programa se abrirá una ventana que contiene un poco de texto, y luego esperar cerca. Encontrar el programa completo en los ejemplos de archivos / programming_guide / hello_world.py.
código
En primer lugar liberar el código completo
import pyglet
window = pyglet.window.Window()
label = pyglet.text.Label('Hello, world',
font_name='Times New Roman',
font_size=36,
x=window.width//2, y=window.height//2,
anchor_x='center', anchor_y='center')
@window.event
def on_draw():
window.clear()
label.draw()
pyglet.app.run()
1, en pyglet
el paquete
import pyglet
2, crear una ventana
Llamando al pyglet.window.Window
crear una instancia de un objeto constructor por defecto. Una vez creado, se pone una ventana visible, y todos sus parámetros tienen valores por defecto razonables:
window = pyglet.window.Window()
3, el contenido de la ventana
Para mostrar el texto, vamos a crear una etiqueta. Parámetros para ajustar las etiquetas de las fuentes, y las posiciones de anclaje:
label = pyglet.text.Label('Hello, world',
font_name='Times New Roman',
font_size=36,
x=window.width//2, y=window.height//2,
anchor_x='center', anchor_y='center')
on_draw (función) se utiliza para editar el contenido de la ventana. ofertas Pyglet método controlador de eventos varios unido a un objeto; Un método simple es utilizar el decorador:
@window.event
def on_draw():
window.clear()
label.draw()
En la función on_draw anterior (), la ventana se borrará al color de fondo por defecto (negro) y dibujar la etiqueta.
4, llame a:
pyglet.app.run()
Introduzca el Pyglet bucle de eventos por defecto y permite responder a eventos Pyglet de aplicación, como un ratón y un teclado. Ahora será necesario llamar a un controlador de eventos, y ejecutar () Este método devuelve solamente cuando todas las ventanas de las aplicaciones están cerradas.
Si esto es correcto, entonces debería aparecer la siguiente pantalla
En segundo lugar, el visor de imágenes
La mayoría de los juegos y las aplicaciones necesitan cargar imágenes y visualización en la pantalla. En este ejemplo, cargamos una imagen de directorio y lo muestra en la ventana de la aplicación:
código
import pyglet
window = pyglet.window.Window()
image = pyglet.resource.image('kitten.png')
@window.event
def on_draw():
window.clear()
image.blit(0, 0)
pyglet.app.run()
Utilizamos pyglet.resource
la image()
función para cargar una imagen, la imagen se encontrará automáticamente la posición de la imagen (pero no el directorio de trabajo) en base a la ruta del archivo fuente.
Para cargar la imagen no incluido junto con la solicitud (por ejemplo, se especifica en la línea de comandos que se requiere pyglet.image.load()
).
blit()
Un método para la elaboración de una imagen. Parámetro (0, 0)
dice Pyglet trazar las coordenadas de pixel de imagen de la ventana 0,0 (esquina inferior izquierda) de.
En tercer lugar, el trato con los eventos de ratón y teclado
código
import pyglet
from pyglet.window import mouse
window = pyglet.window.Window()
@window.event
def on_key_press(symbol, modifiers):
print('A key was pressed')
@window.event
def on_mouse_press(x, y, button, modifiers):
if button == mouse.LEFT:
print('The left mouse button was pressed.')
@window.event
def on_draw():
window.clear()
pyglet.app.run()
1, teclado
Hasta ahora, el único evento utilizando el on_draw()
evento. Con el fin de responder a los eventos de teclado y ratón, también debe escribir y asociar controladores de eventos para estos eventos:
import pyglet
window = pyglet.window.Window()
@window.event
def on_key_press(symbol, modifiers):
print('A key was pressed')
@window.event
def on_draw():
window.clear()
pyglet.app.run()
Hay dos parámetros de evento clave: Pulsando los símbolos clave virtuales y todos los modificadores (por ejemplo, teclas CTRL y SHIFT) presente combinación bit a bit.
El símbolo de la llave se define en pyglet.window.key
:
from pyglet.window import key
@window.event
def on_key_press(symbol, modifiers):
if symbol == key.A:
print('The "A" key was pressed.')
elif symbol == key.LEFT:
print('The left arrow key was pressed.')
elif symbol == key.ENTER:
print('The enter key was pressed.')
Sobre pyglet.window.key
una lista completa de los símbolos clave, por favor, consulte la documentación
2, ratón
Y teclado similar
from pyglet.window import mouse
@window.event
def on_mouse_press(x, y, button, modifiers):
if button == mouse.LEFT:
print('The left mouse button was pressed.')
x e y parámetros se da el botón del ratón está deprimido respecto a la esquina inferior izquierda de la ventana.
Puede manejar más de 20 tipos de eventos en la ventana. Encontrar una manera sencilla el nombre del evento deseado y parámetros que añadir la siguiente línea en el programa:
event_logger = pyglet.window.event.WindowEventLogger()
window.push_handlers(event_logger)
En cuarto lugar, sonidos de juegos y música
Pyglet puede reproducir fácilmente una gran variedad de sonidos y mezclarlos entre sí. Juega un ejemplo de un archivo MP3:
import pyglet
music = pyglet.resource.media('music.mp3')
music.play()
pyglet.app.run()
Y cargar la imagen muestra como se describe anteriormente, los medios de comunicación () el camino para encontrar un archivo de sonido en el directorio de la aplicación. Si conoce la ruta del sistema de archivos (ruta relativa o absoluta), el uso pyglet.media.load () .
Por defecto, se streaming de reproducción de audio. Esto es bueno para el efecto más largas pistas de música. Breve sonido, tales como armas de fuego utilizada en el juego, debe estar completamente decodificada en la memoria antes de su uso. Como resultado, la línea más inmediato, el rendimiento de la CPU, la pérdida de menos. También permite repetir el mismo sonido sin tener que recargar. En este caso, especifique streaming=False
:
sound = pyglet.resource.media('shot.wav', streaming=False)
sound.play()
Ejemplos más detallados, consulte el siguiente código de ejemplo en el archivo de origen
-
examples/media_player.py
: Pyglet muestra cómo utilizar la reproducción de audio y video -
examples/noisy/noisy.py
: Demo durante la reproducción de muchas muestras de audio cortas, como en el juego
MP3 y otros formatos de audio comprimidos requieren la instalación de FFmpeg. Los archivos WAV sin comprimir se pueden reproducir sin el uso de FFmpeg