pyglet库是python的一个游戏动画GUI和轻量级媒体框架
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更容易学习和掌握。
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 sys import 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.event def on_draw(): window.clear() sprite.draw() #启动 pyglet.app.run()
2.2 dinosaur.gif,注意与上面的py文件放在同一个目录下
2.3 效果图
3 Label设置
代码:多种方法显示label,代码注释中有讲解。#方法一 """ 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装饰器 @window.event def 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.event def on_draw(): win.clear() label.draw() pt.app.run() """ """ #方法三 import pyglet as pt win = 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 pyglet game_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()
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.event def on_draw(): window.clear() image.blit(0, 0) pyglet.app.run()
1221.jpeg
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 pmod() 函数把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b)。 m, s = pmod(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.event def on_draw(): window.clear() timer.label.draw() timer = Timer() pyglet.clock.schedule_interval(timer.update, 1/30.0) pyglet.app.run()
效果图
==========未完待续========
下次讲讲pyglet的坑的问题,哈哈哈哈。先分享出来,喜欢就转发和收藏
生长记录艾米的912个月我是芷沐,80后职场宝妈,二级心理咨询师,爱阅读写作,爱心理学。用心理学理解人生,用阅读充盈思想,用文字记录生活,用学习保持成长。欢迎关注我,一起理解人生,一起学习做更好的父母。前
8月龄宝宝因吃错辅食住院,孩子没过2岁,这6种辅食不要碰随着科学育儿的观念越来越深入人心,辅食的价值受到了更多年轻父母的重视,毕竟从孩子的奶粉喂养到正常的饮食之间还有好长一段路需要走,做好辅食喂养工作将会为孩子带来不小的发育潜力。现实情
养女儿把握好这7个关键期,少走弯路很多家庭对于女儿,从小就会当成掌上明珠。但是一味宠溺和富养并不是我们养育女儿的关键。想要培养出快乐,坚强,勇敢,独立的女儿,一定要在对应的时期做对的事情,说对的话。教育学把儿童的成
全职妈妈的心酸我是一个全职妈妈,原本我有一个完整的小家庭,由于种种原因,小家庭走向破碎,从无话不谈到每天争吵,各种委屈不甘心,所有都往肚子里咽。可能我这么说,带着负能量,影响一些人的心情,我想说
家长们,你还在问学围棋有什么好处吗?你还在问学围棋有什么好处吗?如果有人问我,学围棋有什么好处呢?那我会大声并肯定地说那可多了去了。围棋是一项将智力体力品质意志融为一体的娱乐活动。下围棋有许多好处,例如开发智力,集中
北京贵族学校成人礼,学生亮相宛如走红毯,网友调侃现实版继承者本文由萱爸育儿经原创,版权所有,侵权必究对于孩子来说,18岁是一个十分特殊的年龄,这个数字是一个人走向成熟的标志,过完这一天也就意味着他们永远脱离了孩子的身份,成为了真正意义上的成
长期服用优甲乐,会有啥副作用呢?涨知识的科普,转给家人看看吧甲减,就是指甲状腺功能降低,造成的症状,造成甲减的原因是体内缺乏甲状腺激素,从而导致人体的新陈代谢活动降低,造成一系列的临床综合征。症状特别严重的患者,往往表现为黏液性水肿。如果在
看完这对母子的聊天实录,才明白物质上的穷养有多可怕文凝妈悟语养孩子,到底是穷养还是富养?有人说得让孩子过一过苦日子,才知道好日子是多么幸福,才会珍惜眼前的生活,才知道努力奋斗。但是如果误解了穷养的意义,一味穷养,就真的把孩子养穷了
不吃盐就没力气?不给孩子吃盐的理由?现在,爸妈都知道给宝宝多吃盐不好,所以每天烧菜时都会下意识少放一点。这样就行了吗?看得见的盐,好控制,看不见的盐,才难办呢。看不见的盐,就是小南今天说的隐形盐。也就是你以为没多少盐
宅家亲子互动丨吸管白纸变变变宅家亲子互动丨吸管白纸变变变!宅家怎么陪孩子玩起来?快看过来来试试这几个有趣的默契小游戏吧奇妙吸管材料吸管乒乓球一次性杯子橡皮筋玩法一一方用吸管向乒乓球吹气,使球滚向对面,另一方用
外国网友晒亲子对比照,现在与过去完美重合,时间真的会循环吗?本文由萱爸育儿经原创,版权所有,侵权必究生活中,由于基因遗传,我们会发现孩子和自己小时候会有很多相似之处,又或者他们长得非常像家族中的某位亲人。当将这些跨越时光的照片放在一起对比时
乳铁蛋白原来有这么多好处!宝妈要赶紧看过来之前钧妈简单的给宝妈们说过乳铁蛋白,但是好像很多宝妈对乳铁蛋白的好处还是不了解,今天钧妈就给大家在详细的介绍下它乳铁蛋白是一种免疫蛋白,存在于人体的乳汁和各种分泌液中,以母乳中的含
不做社恐人,牛逼社交从宝宝抓起孩子害羞看到陌生人不敢说话孩子不愿意交流不愿意和别人交朋友咋办钧妈虽然已经是两个娃的妈了,但是钧妈也是爱8G冲浪的小达人最近一段时间钧妈看到很多网友说自己是社恐人,很是羡慕那些社交
孕期护肤怎么做?钧妈整理好干货啦,速来查收怀孕生孩子是一个女人一生中比较重要的一个坎,于是有准妈问钧妈在孕期的时候可以用化妆品吗?用化妆品会不会对宝宝不好?钧妈想告诉大家的是孕妇最好不要用化妆品但是可以用护肤品哦,孕妇护肤
在教育孩子上,你是第一种父母还是第二种父母?钧妈提问钧妈今天想问问各位家长们,你们平时是怎么教育孩子的?父母起到好的表率作用,孩子就会效仿,反之,孩子只能模仿你做别的事情。第一种父母脾气火爆的父母认为,孩子不打不成才避免孩子
孩子挑食怎么办?应对方法在这孩子挑食一直以来都是让宝妈们非常头疼的难题,营养均衡对孩子来说非常重要。长期挑食,会影响儿童生长发育。钧妈就给大家讲讲儿童挑食的时候吃什么好儿童挑食的原因危害以及应对措施。宝妈们要
孩子的眼睛很重要,家长们给孩子做好防护了没?前言钧妈知道各位宝妈们很注重孩子的健康营养均衡等等问题,但是有不少宝妈最近反应说他们家孩子才刚上一年级怎么就视力不好了,不带眼镜根本就看不清黑板上写的字该怎么办呢?图片来源于网络钧
如何自己催奶?怎么按摩乳房开奶?有新手宝妈说自己的奶水太少了,不知道怎么办了,希望钧妈可以给一些建议哺乳期时,当宝宝对母乳的需求供不应求时,就需要帮妈妈催奶了,更专业的说法即催乳。可以有请催奶师通过理气活血疏经通
婴儿游泳的好处有哪些?又该注意哪些?图片来源于网络今天钧妈要给大家讲解的干货是关于婴儿游泳的问题,有很多宝妈也咨询过这个问题。其实,婴儿游泳对婴儿的成长是有很多好处的,婴儿学习游泳能够提升大脑对外界的反应能力,让孩子
准妈妈为什么会孕期失眠?孕期失眠又该怎么办?有位准妈妈说她又失眠了,希望钧妈可以给她支支招该如何避免失眠,10个孕妇8个会失眠,怀孕之前都是一觉到天亮,可怀了宝宝后就不行了,睡眠质量严重下降,已经被各种孕期反应折磨了一通了,
如何培养宝宝睡眠规律?新手爸妈快学起来喽钧妈经常听到一些新手爸妈说夜里起来照顾孩子实在是太累了,你需要帮助孩子培养良好的睡眠习惯。但培养睡眠习惯这项大工程并不能一蹴而就。根据宝宝月龄培养特定的睡眠习惯图片来源于网络08周
母乳喂养的四个误区,宝妈们中招了没?很多新手宝妈生完孩子之后,都会选择母乳喂养,认为母乳喂养会更有利于宝宝的健康成长但关于母乳喂养有几个误区让很多宝妈容易踩雷,今天钧妈就给新手宝妈们做一个干货整理,希望对宝妈们有用!