Pyglet/编写一个Pyglet应用

维基教科书,自由的教学读本

从头开始学习一个开发框架的用法可能是最难的,尤其是需要阅读大量参考资料的时候。这一章节能令您快速认识Pyglet,但讲的并不深入。

Hello, World[编辑]

我们先从简单的Hello, World程序开始。它会打开一个窗口,显示一些文字,然后等待您关闭它。您可以在这里找到整个程序文件。

首先,您得导入Pyglet包:

import pyglet

使用pyglet.window.Window创建一个窗口,它会立马显示在屏幕上:

window = pyglet.window.Window(caption="Hello, World")

要想显示一些文字,我们需要一个Label对象。这里的关键字参数设置了标签的字体、大小、位置以及对齐方式:

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()被添加到窗口,让它可以重绘窗口中的内容。Pyglet提供了很多种方法将事件处理程序添加到对象,最简单的例子就是使用装饰器:

@window.event
def on_draw():
    window.clear()
    label.draw()

在上述的on_draw()中:窗口被清空,且设置为了黑色,然后标签会被绘制。

最后,调用:

pyglet.app.run()

这会进入到Pyglet默认的事件循环中,让Pyglet响应鼠标、键盘等事件;也会按需调用您自定义的事件。

图像浏览器[编辑]

很多游戏和应用都需要加载和显示图像。在这个例子中,我们会从运行目录里加载一张图片并在窗口上显示:

import pyglet
window = pyglet.window.Window()
image = pyglet.resource.image('kitten.jpg')

@window.event
def on_draw():
    window.clear()
    image.blit(0, 0)
pyglet.app.run()


我们使用pyglet.resource中的函数image来导入图像。当然,您也可以选择pyglet.image.load

方法blit用来绘制图像,参数 (0, 0)通知Pyglet将图像绘制在窗口坐标 (0, 0)处(位于窗口左下角)。

您可以在此找到该示例的代码。

捕获鼠标/键盘事件[编辑]