1 说明:

1.1 安装

pip install pyglet

1.2 相关地址

https://pypi.org/project/pyglet/http://pyglet.org/https://github.com/pyglet/pyglet

1.3 介绍

1.3.1 是python的游戏三大库之一,适合游戏动画,1D,2D,3D设计。

1.3.2 一个python下的多媒体框架,属于轻量级别,可以轻易的做出交互丰富的应用。比pygame,panda3d更容易学习和掌握。




Python playwright 设置窗口大小 python窗口怎么调节大小_python计时器


2 2d动画散步的精灵。

2.1 代码:dinosaur.py

#网上gif下载地址# The dinosaur.gif file packaged alongside this script is in the public# domain, it was obtained from http://www.gifanimations.com/.#导入模块import sysimport pyglet##定义系统加载图片地址if len(sys.argv) > 1:    # Load the animation from file path.    animation = pyglet.image.load_animation(sys.argv[1])    texture_bin = pyglet.image.atlas.TextureBin()    animation.add_to_texture_bin(texture_bin)else:    # 文件与py文件在同一个目录,这是pyglet的特色之处    animation = pyglet.resource.animation('dinosaur.gif')#定义精灵=sprite和导出精灵模块sprite = pyglet.sprite.Sprite(animation)#定义窗口和大小window = pyglet.window.Window(          #窗口标题名caption='散步的精灵动画',#窗口大小可调节resizable=True,width=8*sprite.width, height=8*sprite.height)# Set window background color to white.# 设置窗口背景颜色为白色pyglet.gl.glClearColor(1, 1, 1, 1) #默认背景颜色是黑色,注释掉就是黑色#window的装饰器法@window.eventdef on_draw():    window.clear()    sprite.draw()#启动pyglet.app.run()

2.2 dinosaur.gif,注意与上面的py文件放在同一个目录下


Python playwright 设置窗口大小 python窗口怎么调节大小_窗口标题_02


2.3 效果图


Python playwright 设置窗口大小 python窗口怎么调节大小_窗口标题_03


3 Label设置

代码:多种方法显示label,代码注释中有讲解。

#方法一'''import pygletwindow = 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装饰器@window.eventdef on_draw():    window.clear()    label.draw()pyglet.app.run()''''''#方法二import pyglet as pt#window = pt.window.Window() #默认窗口大小win = pt.window.Window(1000,1000) #指定窗口大小label = pt.text.Label('Hello, world',                          font_name='Times New Roman',                          font_size=36,                          x=win.width//2, y=win.height//2,                          anchor_x='center', anchor_y='center')                          #在一个相同名字的函数上使用@Win.event装饰器#这个装饰器的win就是上面定义win@win.eventdef on_draw():    win.clear()    label.draw()pt.app.run()''''''#方法三import pyglet as ptwin = pt.window.Window(            #窗口大小设置            width=1000,            height=1000,            #窗口标题名            caption="第一个窗口",            #窗口大小可调节            resizable=True)label = pt.text.Label('Hello, world',                          font_name='Times New Roman',                          font_size=36,                          x=win.width//2, y=win.height//2,                          anchor_x='center', anchor_y='center')if __name__ == '__main__':    pt.app.run()    label.draw()'''#方法四import pygletgame_window = pyglet.window.Window(            width=1000,            height=1000,            caption="第一个窗口",            resizable=True)# 创建Label对象label = pyglet.text.Label('Hello, world',                          font_size=25,  # 字体不指定,使用默认的,大小为25                          x=game_window.width//2,                          y=game_window.height//2,                          anchor_x='center', anchor_y='center'                          )def show_label():    # 将初始的窗口内容删除    game_window.clear()    # 添加文本,重新绘制窗口    label.draw()# 重写on_draw方法,以后就会执行我们在show_label里面指定的代码# set attribute的意思setattr(game_window, "on_draw", show_label)if __name__ == '__main__':    pyglet.app.run()


Python playwright 设置窗口大小 python窗口怎么调节大小_窗口标题_04


4 照片显示

代码

#导出模块import pyglet#窗口定义#window = pyglet.window.Window() #采用默认方法window = pyglet.window.Window(#窗口大小设置width=1000,height=1000,#窗口标题名caption="照片显示",#窗口大小可调节,默认是False,不可调节resizable=True) #定义照片#注意特别之处,文件py与jpg在同一个目录下#一般这种都在根目录下,或者指定路径和目录image = pyglet.resource.image('1221.jpg')#装饰器法显示@window.eventdef on_draw():    window.clear()    image.blit(0, 0)pyglet.app.run()


Python playwright 设置窗口大小 python窗口怎么调节大小_2d_05

1221.jpeg


Python playwright 设置窗口大小 python窗口怎么调节大小_python计时器_06

plglet照片显示


5 计时器,代码

#定义计时器import pyglet#定义窗口全屏#window = pyglet.window.Window(fullscreen=True) #哈哈哈,deepinlinux的录屏不支持这种全屏window = pyglet.window.Window(            #窗口大小设置            width=1000,            height=1000,            #窗口标题名            caption="计时器",            #窗口大小可调节            resizable=True) #定义计时器class Timer:    #初始化定义    def __init__(self):        self.label = pyglet.text.Label('00:00', font_size=100,                                        x=window.width//2, y=window.height//2,                                       anchor_x='center', anchor_y='center')        self.reset()    #定义重设函数    def reset(self):        self.time = 0        self.running = False        self.label.text = '00:00'        self.label.color = (255, 255, 255, 255)    #定义更新韩式    def update(self, dt):        if self.running:            self.time += dt            #python divmod() 函数把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b)。            m, s = divmod(self.time, 60)            self.label.text = '%02d:%02d' % (m, s)            if m >= 5:                self.label.color = (180, 0, 0, 255)@window.event#定义窗口按钮函数def on_key_press(symbol, modifiers):    #空格键按钮定义,点击开始,再点击暂停    if symbol == pyglet.window.key.SPACE:        if timer.running:            timer.running = False        else:            if timer.time > 0:                timer.reset()            else:                timer.running = True    elif symbol == pyglet.window.key.ESCAPE:        window.close()@window.eventdef on_draw():    window.clear()    timer.label.draw()timer = Timer()pyglet.clock.schedule_interval(timer.update, 1/30.0)pyglet.app.run()

效果图


Python playwright 设置窗口大小 python窗口怎么调节大小_2d_07


==========未完待续========

下次讲讲pyglet的坑的问题,哈哈哈哈。