Python精灵模块简介与示例集下载

本模块最近时常更新,请用pip uninstall sprites卸载老版本,再用pip install sprites安装最新版本

python sprites module ladybug
python sprites module ladybug

2019年12月9日,一个用于制作入门动画与游戏的Python模块正式诞生了。取名为Python精灵模块,模块名称为:sprites。只要在Python编程时用from sprites import * 就能使用里面的“小精灵”了。用它能比Pygame模块更简单的创建入门型小游戏。如迷宫游戏、横版过关小游戏、多媒体动画、射击游戏等。本模块集作者多年用海龟绘图模块编程之精华。已经上传到PyPi,全世界的朋友们都能下载使用,方法为在命令提示符里输入 pip install sprites 。以下是一个示例弹球动画的代码,是不是非常简单呢?


"""
最简弹球
"""
from sprites import *

ball = Sprite(1)             # 新建精灵,默认是小虫子,写1会生成一个弹球
while True:
    ball.fd(10)              # 前进10
    ball.bounce_on_edge()    # 碰到边缘就反弹

以下是用这个模块制作的一个射击小游戏:
星空飞碟大战:

Python精灵模块免费开放给所有Python爱好者。你只要在命令提示符里输入pip install  sprites 即可安装。

一、简介:

本模块命令名为精灵模块,或叫角色模块。本模块已经上传到了pypi网站,通过在cmd窗口下输入pip install sprites即可安装使用。
精灵模块主要提供继承自Turtle的Sprite类。重定义了Turtle模块中的一些方法和属性。
由于要旋转图形,所以需要PIL模块和numpy模块支持。默认的精灵对象是抬笔的,内置16张图片。 分别是:ball.png,bug.png,b1.png,b2.png,cat1.png,cat2.png,bee.png,flower.png,explosion0.png,explosion1.png,fighter.png,
thunder.png,sky.png,ufo.png,rat1.png,rat2.png。它们存在于_built_in_images列表中。在本模块第一次运行后,这些图片会释放到当前工作目录的res文件夹。本模块设计为教育目的,可用来做入门动画与游戏。

二、Sprite类主要提供了以下功能:

1、角色可直接拖动(compound造型不支持)。
2、提供像Scratch中的三种旋转模式。精灵对象的_rotatemode属性值为0,代表可360度旋转,为1时代表可左右翻转,为2时角色不会旋转。
3、rotatemode:返回或设置旋转模式。
4、addx:x坐标增加。
5、addy:y坐标增加。
6、scale:缩放,只有一个参数。
7、gotorandom:到随机位置。
8、heading:重定义了这个方法,不带参数能获取当前朝向。带参数参让角色朝向某对象或坐标。
9、show:显示对象,带参数时让角色显示一定的时间后又会隐藏,异步执行。
10、hide:隐藏对象,带参数时让角色隐藏一定的时间后又显示,异步执行。
11、mouse_pos:获取鼠标指针坐标。
12、move:移动水平dx距离和垂直dy距离。
13、collide:和另一个角色或图章的碰撞方法,采用的是矩形碰撞,可以有scale参数,表示缩放绑定盒子,如scale=0.5时,绑定盒宽高各缩一半。
14、collidemouse:碰到鼠标指针。
15、collide_edge:碰到边缘检测。
16、bounce_on_edge:碰到边缘就反弹,适合于用fd命令让角色前进后再使用。
17、bbox:获取角色绑定盒,也可获取图章的绑定盒。
18、randomcolor:随机颜色,较鲜艳。
19、randomheading:随机方向。
20、remove:移除方法,把自己从屏幕的_turtles列表中删除,并根据item号删除自己在画布上的形状,清除说话泡泡对象。
21、stamp:重定义了Turtle类的图章方法,新增的参数可以让图章在一定时间后自动被清除,异步执行。
22、stampmove:根据图章编号水平和垂直移动图章。
23、stampgoto:移动图章编号到指定坐标,暂不支持复合图形的图章,它们的图章编号是一个元组。
24、play:播放方法,目前只支持播放无损压缩的wav音频文件,支持显示歌词。
25、setalpha:设置透明度方法。参数为从0到255的数值。0代表完全透明,255代表不透明,128代表半透明。
对于polygon和compound造型来说,0代表透明,非0代表不透明。对于image来说,设置角色的透明度从0到255的值就会产生从透明到不透明的渐变效果。
26、getalpha:得到透明度,从0到255的整数。
27、set_tag:设置角色的标签。它是一个字符串,用于分组。
28、get_tag:获取角色的标签。
29、say:说话方法,会显示气泡。默认时间为2秒,默认阻塞进程。
30、saycolor:返回或设置说话的字的颜色。
31、saybordercolor:返回或设置说话泡泡的边框颜色。
32、write:重定义写方法,增加angle参数,可以写斜字,默认为黑体,12号。
33、reborn:“重生”方法,让角色隐藏后在另一坐标重新显示。复用角色之用,可加delay参数,意为在一定的时间后才显示,异步执行。
34、nextcostume:下一个造型,别名是nextshape。
35、previouscostume:上一个造型,别名是previousshape。
36、costumeindex:指定造型编号,别名是shapeindex。
37、update:重绘角色。
38、wait:等待命令,在等的过程中会一直刷新屏幕,和sleep不同。
39、slide:滑行命令,别名是 glide

三、screen新增命令:

1、resizable:默认窗口是不可变大小的,用这个命令能让窗口重新可缩放。
2、onmousemove:即鼠标移动事件。
3、onscreenrelease:鼠标松开事件。

四、单独函数:

1、makecolors:
默认产生128种鲜艳的颜色,导入本模块后它会运行一次,产生一个_colorlist列表。

2、mouse_pos:
获取鼠标指针的坐标,和屏幕的xscale和yscale无关。

3、explode:
产生爆炸效果的函数。需要传递坐标和序列帧图。

五、单独类:

1、Key类:用来新建某个按键的实例,用于在循环中进行键盘按键检测。
2、Mouse类:用来新建鼠标按键的实例,用于在循环中进行鼠标按键检测。
3、Clock:用来固定帧的时钟类,有tick方法和getfps方法。前者用来设置帧率,后者获取帧率。

六、其它:
新增屏幕的_focus属性,用来跟踪屏幕是否激活。

注意以下问题:
1、不支持复合图形的拖动。
2、tilt倾斜等变形命令不会对图形进行变形。
3、用精灵的remove方法可以较彻底的删除精灵对象,但对象越多还是会越来越慢,解决方案是让对象重复使用!
典型的为角色超出边界后,并不需要remove它。可以让它隔一段时间再出现即可,不要不停地实例化新对象!

如果用屏幕的tracer(0,0)关闭了自动渲染角色,那么在移动角色后要马上刷新屏幕,否则会出现意外效果。
原因是绑定盒命令得到的是先前没有刷新的角色的坐标,这样获取的不是最新坐标,当然会导致程序出意外。
用屏幕的update命令会重新渲染所有的角色,如果角色较多,反而会让程序运行更慢。
本模块给RawTurtle类增加了update方法,这样能单独渲染一个角色。本模块已经把屏幕的自动绘画延时设为0了。
其实Turtle模块可以支持png图片,但要像以下这样写:
screen.addshape(‘scratch.png’,Shape(“image”, screen._image(‘scratch.png’)))

python sprites example download
python sprites example download

下载网址: https://pan.baidu.com/s/1NdTTUVDfSa5Cx1PSZEe3Dw

扫码后加李兴球微信号:scratch8,获赠100Python创意程序及大量Scratch作品。 本站所有作品,教程等皆为原创,盗版必究。一旦付款,表示同意本站知识付费原则:数字商品,不支持退款。扫码付款后的朋友可以加QQ: 406273900,提供技术支持及发送作品图片与配音素材。亦可直接向微信号scratch8付款购买。
李兴球的博客_Python创意编程技术前沿 » Python精灵模块简介与示例集下载

学本领,探索更大的世界!

李兴球博客 风火轮编程主页