Pyhon-pyglet 学习

pyglet 简介

pyglet是一个面向Python的跨平台窗口和多媒体库,用于开发游戏和其他视觉丰富的应用程序。它支持窗口,用户界面事件处理,OpenGL图形,加载图像和视频,播放声音和音乐。pyglet适用于Windows、OS X和Linux。

下面是它的一些特性:

  • 不需要其他的安装依赖:一个Python足矣。
  • 利用多窗口和多显示器的桌面程序。
  • 几乎以任何格式加载图像、声音、音乐和视频。
  • pyglet是在BSD开源许可下提供的。
  • 支持python2和python3。

快速开始(Hello World)

从Hello World 开始

演示如下:
在这里插入图片描述
下面就是简单的代码了。

  • 首先导入我们pyglet。
  • 然后利用默认的构造函数创建一个Window窗口。
  • 然后创建一个Label,利用构造创建相应的属性。
  • 然后绑定一个重新绘制窗口的on_draw函数。
  • 最后运行我们的程序。
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()

图像查看器

__docformat__ = 'restructuredtext'
__version__ = '$Id$'

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()

操纵我们的鼠标和键盘事件

from __future__ import print_function

__docformat__ = 'restructuredtext'
__version__ = '$Id$'

import pyglet
from pyglet.window import key
from pyglet.window import mouse

window = pyglet.window.Window()

@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.')

@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()

在这里插入图片描述

音乐播放器

这是一部分简单的代码:

import pyglet

music = pyglet.resource.media('Lizzo - Truth Hurts (Official Video).mp3')
music.play()

pyglet.app.run()

小技巧:
一般默认地,音乐在播放的时候是流媒体的,这对于播放一些时间长的音乐是很好的。但是如果是一些音效很短的例如枪火声之类的特效,非常的短暂。那么,最好在我们播放之前,就将其解码后存入到内存中。这样我们可以直接的使用这些音效,并且可以带来更少的cpu性能损耗。
使用以下的语句:

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

如果需要更高级的代码程序。
如引入一个为pyglet编写的音乐解码库。

AVbin 解码库简介

AVbin是一个跨平台的二进制版本的库,它封装了Libav的视频和音频解码库,为需要它的应用程序和语言提供了长期的二进制兼容性。
AVbin最初是为Pyglet项目创建的,作为它的媒体解码/解压库,尽管我们希望其他人也发现AVbin有用。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值