Python精灵和精灵组
plane_sprites.py
import pygame# 如果一个类的父类不是object
# 在重写初始化方法时,一定要先super()一下父类的__init__方法
# 保证父类中实现的__init__代码能够正常执行# 属性 image 精灵图像使用image_name加载
# rect 精灵大小默认使用图像大小
# speed 精灵移动速度,默认为1# 方法 update 每次更新屏幕时在游戏循环内调用
# self.rect.y+=self.speed# image的get_rect()方法,可以返回pygame.Rect(0,0,图像宽,图像高)的对象class GameSprite(pygame.sprite.Sprite):"""飞机大战游戏精灵"""def __init__(self,image_name,speed=1):# 调用父类的初始化方法super().__init__()#定义对象的属性self.image=pygame.image.load(image_name)self.rect=self.image.get_rect()self.speed=speeddef update(self):#在垂直方向移动self.rect.y+=self.speed
06_精灵和精灵组 创建敌机
import pygame
from plane_sprites import *
from pygame.locals import *# 为了简化图像开发步骤,pygame提供了两个类
# pygame.sprite.Sprite--存储图像数据image和位置rect的对象
# image 记录图像数据
# rect 记录在屏幕上的位置
# update(*args):更新精灵位置
# kill(): 从所有组中删除
# pygame.sprite.Group
# __init_(self,*精灵_
# add(*sprites):向组中添加精灵
# sprites(): 返回所有精灵列表
# update(*args):让组中所有精灵调用update方法
# draw(Surface):将组中所有精灵的image,会知道Surface中的rect位置# 游戏初始化:创建精灵 创建精灵组
# 游戏循环:精灵组.update() 精灵组.draw(screen) pygame.display.update()# 事件:游戏启动之后用户针对游戏所做的操作
# 监听:捕捉到用户的操作,有针对性的做出响应
# pygame中通过pygame.event.get()可以获得用户当前所做动作的事件列表pygame.init()# 创建游戏的窗口 480*700
screen=pygame.display.set_mode((480,700),0,0)# 绘制背景图像
background = pygame.image.load("./shoot/background.png")
screen.blit(background,(0,0))# 绘制大飞机
bigplane = pygame.image.load("./shoot/hero0.png")
screen.blit(bigplane,(200,500))# 统一更新
pygame.display.update()# 创建时钟对象
clock=pygame.time.Clock()# 定义大飞机的初始位置
bigplane_rect=pygame.Rect(150,500,102,126)# 创建敌机精灵
enemy=GameSprite("./shoot/airplane0.png")# 创建敌机精灵组
enemy_group=pygame.sprite.Group(enemy)while True:# 控制帧率clock.tick(60)# 事件监听for event in pygame.event.get():#判断用户是否点击了关闭按钮if event.type==pygame.QUIT:print("退出游戏!")# quit卸载所有模块pygame.quit()#退出系统exit()# 修改大飞机位置bigplane_rect.y-=1# 判断飞机的位置if bigplane_rect.y+bigplane_rect.height<=0:bigplane_rect.y=700screen.blit(background,(0,0))screen.blit(bigplane,bigplane_rect)# 让精灵组调用两个办法# update 更新所有精灵的显示enemy_group.update()# draw 把所有精灵全部绘制到屏幕上enemy_group.draw(screen)pygame.display.update()# 为当前窗口增加事件# 利用pygame注册事件,其返回值是一个列表# 存放当前注册时获取的所有事件for event in pygame.event.get():if event.type == QUIT:exit()pygame.quit()
Python精灵和精灵组相关推荐
- Python pygame,精灵和精灵组
plane_sprites.py(模块,定义派生精灵子类,继承pygame.sprite.Sprite): import pygame# 自定义的派生精灵子类,继承pygame.sprite.Spri ...
- python精灵和精灵组_Pygame精灵和精灵组
Pygame精灵和精灵组 Pygame 提供了两个类 pygame.sprite.Sprite -- 存储 图像数据 image 和 位置 rect 的 对象 pygame.sprite.Group ...
- Python 理解 精灵 和 精灵组
1.1 精灵 和 精灵组 在刚刚完成的案例中,图像加载.位置编号.绘制图像 都需要程序员编写代码分别处理. 为了简化开发步骤: pygame 提供两个类. pygame.sprite.Sprite - ...
- Python_精灵和精灵组
1. 基本概念 接下来介绍两个pygame中提供的高级类, 精灵和精灵组. 在介绍这两个类之前, 先来共同回顾一下到目前为止掌握的游戏开发套路. 在游戏初始化,需要加载一下游戏中所有的图像, 然后呢, ...
- 精灵与精灵组的常用属性
精灵常用的属性 pygame.sprite.Sprite.update - 控制精灵行为的方法 pygame.sprite.Sprite.add - 将精灵添加到组 pygame.sprite.Spr ...
- Python 实现按键精灵的功能,超简单详细(Windows版)
Python 实现按键精灵的功能,超简单详细 前言: 实现步骤 一.安装三个库 二.试运行简单的功能 三.根据需求自己写代码 注明 前言: 最近公司的同事让我帮他点点点,懒得亲自点,便在网上查找了相关 ...
- python 游戏按键精灵 PyDirectInput介绍
前言: 在python关于按键精灵得操作中常用的有PyAutoGUI,但在使用的过程中,针对一些游戏就直接失灵了,特别是一些以DirectX来开发的游戏或软件.我通过收索相关资料了解到之所以会这样,是 ...
- Python实现按键精灵功能
Python实现按键精灵功能 1.利用screenshot(),crop()截取匹配图像 2.利用imread(),imwrite()分割图片,提高匹配精度 3.利用locateAllOnScreen ...
- python做按键精灵脚本_Python 实现按键精灵的功能,超简单详细(MAC版)
前言: 想看Windows版的同窗能够看Python 实现按键精灵的功能,超简单详细(Windows版) 以前写了Windows版的python实现按键精灵功能.如今我鸟枪换炮换了个新的mac.发现以 ...
最新文章
- linux access函数判断文件存取权限
- KiCAD初学者指南
- php 继承内核中的基类,php – 从基类调用继承类的父方法
- 【OpenCV3】基于双目视觉的三维重建
- 解决gnome3 不能设置无线网络属性
- 调参,注意神经网络处于哪种相态
- antd 设置表头属性_纯css实现固定表头和锁定列
- 怎么更新android 10.0,Android 10.0(Q OS)系统升级计划Androi
- ftp文档服务器设置,ftp服务器基本设置
- Linux进程全解5——父子进程对文件的操作
- 《springcloud超级入门》微服务的概念和优缺点《一》
- 魔众Markdown管理系统v2.1.0源码
- DNN的Portal在站点(服务器)之间的迁移
- 浅谈android的am命令
- C语言基础教程之储存类
- 三类医疗器械进销存软件-医药供应链系统
- arcgis里面怎么截图_怎么利用ARCGIS裁剪图像
- map文件介绍及使用
- 创建通用 macOS 二进制文件
- 关于Random(47)与randon.nextInt(100)的区别
热门文章
- 【整理】图片不能直接拖到3dsMAX和Photoshop中了
- 2013年第四届C B组蓝桥杯省赛真题
- 优酷网视频播放器站外调用详解
- 移动支付模式方面的技术
- 算法的时间复杂度与空间复杂度介绍
- 一篇文章,中文发完英文发,算“一稿多投”吗?
- new Date() 获取当前时间对象(getFullYear、getMonth、getDate、getHours、getMinutes、getSeconds、getDay、getTime)
- 芝士合集(以便查看)
- 删除docker container
- 如何解析xml报文获取数据集合