python使用pygame创建精灵Sprite


Posted in Python onApril 06, 2021

一 、精灵(Sprite),屏幕上的对象。精灵组是精灵的组合。创建空的精灵组对象:

精灵组可以对其中的所有精灵调用它们各自的更新方法(self.update)来进行更新,如位置更新、碰撞检测、冲突检测等:

all_sprites.update()

    精灵组可以对其中的所有精灵调用它们各自的DRAW方法(self.update)来绘制精灵:

all_sprites.draw(screen)

二、创建精灵

    1、创建精灵需要继承基类pg.sprite.Sprite。每个Pygame精灵都必须拥有两个属性: image和 rect

class Player(pg.sprite.Sprite):
	def __init__(self):
		pg.sprite.Sprite.__init__(self)
		self.img = pg.Surface((50, 50))
		self.img.fill(GREEN)
		self.rect = self.img.get_rect()
		self.rect.center = (215, 215)

    其中,rect有如下定位属性:

python使用pygame创建精灵Sprite

    其中,topleft, topright, center, bottomleft, bottomright为二元int元组,其余的为int。

    2、添加update方法:

def update(self):
	self.rect.x += 5
	if self.rect.left > WIDTH:
		self.rect.right = 0

    在游戏循环中,有all_sprites.update()。这意味着对于组中的每个sprite,Pygame将查找一个update()函数并运行它。

三、将精灵加入精灵组:

all_sprites = pygame.sprite.Group()
player = Player()
all_sprites.add(player)

到此这篇关于python使用pygame创建精灵Sprite的文章就介绍到这了,更多相关python使用pygame创建Sprite内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python简单判断序列是否为空的方法
Jun 30 Python
python timestamp和datetime之间转换详解
Dec 11 Python
基于Python log 的正确打开方式
Apr 28 Python
python项目对接钉钉SDK的实现
Jul 15 Python
python自动生成model文件过程详解
Nov 02 Python
python 实现多线程下载m3u8格式视频并使用fmmpeg合并
Nov 15 Python
Python +Selenium解决图片验证码登录或注册问题(推荐)
Feb 09 Python
Python实现栈的方法详解【基于数组和单链表两种方法】
Feb 22 Python
Python单例模式的四种创建方式实例解析
Mar 04 Python
树莓派升级python的具体步骤
Jul 05 Python
python 实现的IP 存活扫描脚本
Dec 10 Python
使用python求解迷宫问题的三种实现方法
Mar 17 Python
python 逐步回归算法
python 通过使用Yolact训练数据集
python生成随机数、随机字符、随机字符串
Apr 06 #Python
Django项目配置Memcached和Redis, 缓存选择哪个更有优势
Apr 06 #Python
PySwarms(Python粒子群优化工具包)的使用:GlobalBestPSO例子解析
python实现批量提取指定文件夹下同类型文件
Apr 05 #Python
python实现ROA算子边缘检测算法
You might like
第十三节--对象串行化
2006/11/16 PHP
php判断输入不超过mysql的varchar字段的长度范围
2011/06/24 PHP
详解PHP swoole process的使用方法
2017/08/26 PHP
JavaScript入门教程(2) JS基础知识
2009/01/31 Javascript
javascript Excel操作知识点
2009/04/24 Javascript
ExtJS 工具栏 分页事件参数
2010/03/05 Javascript
Jquery增加鼠标中间功能mousewheel的实例代码
2013/09/05 Javascript
JavaScript中的typeof操作符用法实例
2014/04/05 Javascript
jquery实现在页面加载的时自动为日期插件添加当前日期
2014/08/20 Javascript
jQuery获取页面及个元素高度、宽度的总结——超实用
2015/07/28 Javascript
深入浅析knockout源码分析之订阅
2016/07/12 Javascript
VC调用javascript的几种方法(推荐)
2016/08/09 Javascript
解决nodejs中使用http请求返回值为html时乱码的问题
2017/02/18 NodeJs
jQuery插件FusionCharts绘制的2D双面积图效果示例【附demo源码】
2017/04/11 jQuery
BootStrap Table实现server分页序号连续显示功能(当前页从上一页的结束序号开始)
2017/09/12 Javascript
微信小程序实现打开内置地图功能【附源码下载】
2017/12/07 Javascript
AngularJS select加载数据选中默认值的方法
2018/02/28 Javascript
读懂CommonJS的模块加载
2019/04/19 Javascript
layui表格数据重载
2019/07/27 Javascript
[01:17:55]VGJ.T vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/20 DOTA
给Python的Django框架下搭建的BLOG添加RSS功能的教程
2015/04/08 Python
Python实现获取命令行输出结果的方法
2017/06/10 Python
利用Python批量压缩png方法实例(支持过滤个别文件与文件夹)
2017/07/30 Python
使用Flask集成bootstrap的方法
2018/07/24 Python
Python 创建新文件时避免覆盖已有的同名文件的解决方法
2018/11/16 Python
利用python绘制正态分布曲线
2021/01/04 Python
解决Pycharm 运行后没有输出的问题
2021/02/05 Python
表单button的outline在firefox浏览器下的问题
2012/12/24 HTML / CSS
HTML5新增加标签和功能概述
2016/09/05 HTML / CSS
Servlet方面面试题
2016/09/28 面试题
学生评语大全
2014/04/18 职场文书
药店促销活动总结
2014/07/10 职场文书
课外活动总结
2015/02/04 职场文书
新娘婚礼答谢词
2015/09/29 职场文书
python文件名批量重命名脚本实例代码
2021/04/22 Python
SpringBoot SpringEL表达式的使用
2021/07/25 Java/Android