Pyglet 媒体库

Pyglet是为Python语言提供的一个图形化和多媒体库。它为可视化程序尤其是开发游戏提供非常丰富的面向对象的接口,并且是开源的,跨平台的。除了Pyglet之外,PyGame、Panda3D也是Python的游戏开发库。不过Pyglet是三个里面最快捷最容易上手的。


Pyglet的安装


安装可以非常简单,在windows下可以直接用安装包安装。在ubuntu下apt-get也可以直接安装。Pyglet没有额外的依赖包。


HelloWorld程序


下面写一个用pyglet写一个helloworld。

首先要引用库。

import pyglet

构造可视化界面,首先要实例化出一个窗体对象。

window = pyglet.window.Window()
再实例化一个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')
我们要把这个Label画在窗体上去,需要借助于窗体的一个事件on_draw。

@window.event
def on_draw():
    window.clear()
    label.draw()
好啦,上面对这个界面设计好了。就可以运行它了。

pyglet.app.run()
这就是整个helloworld程序。


游戏素材


可视化游戏需要图像素材,下面看看怎么导入图像素材作为程序的资源。

image = pyglet.resource.image('kitten.jpg')
image.blit(x, y)

导入以后,在窗体的on_draw事件中就可以画出该图像资源。上面的x、y是素材显示的坐标位置。


游戏除了图形,还需要有声音。音频素材的导入和使用也非常容易。支持的音频格式也很多,并且不同音频是允许混音播放的。

music = pyglet.resource.media('music.mp3')
music.play()
游戏的声音一般有两类,一类是较长的背景音乐或者片头音乐,一类是较短的动作音效,比如枪声。后者一般需要具有即时性,不能存在延时,所以需要保留在内存里以便随时播放。

sound = pyglet.resource.media('shot.wav', streaming=False)
sound.play()

窗体事件


上面说过窗体的一个事件on_draw,是关于窗体重画的。下面再说一个关于捕获键盘按键的事件on_key_press。

def on_key_press(symbol, modifiers):
它有两个参数,用来判断所按下的按钮,symbol表示一般的键值,modifiers表示辅助键比如ctrl、Alt、shift。symbol键值是在pyglet.window.key被定义过了的。


窗体自带了一共有20多种不同的事件,输入下面这句将会记录在终端记录这些事件的发生。

window.push_handlers(pyglet.window.event.WindowEventLogger())


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值