- A+
set_mode会返回一个Surface对象,代表了在桌面上出现的那个窗口,三个参数第一个为元祖,代表分 辨率(必须);第二个是一个标志位,具体意思见下表,如果不用什么特性,就指定0;第三个为色深。
convert函数是将图像数据都转化为Surface对象,每次加载完图像以后就应该做这件事件(事实上因为 它太常用了,如果你不写pygame也会帮你做);convert_alpha相比convert,保留了Alpha 通道信息(可以简单理解为透明的部分),这样我们的光标才可以是不规则的形状。
blit是个重要函数,第一个参数为一个Surface对象,第二个为左上角位置。画完以后一定记得用update更新一下,否则画面一片漆黑。
模块名 | 功能 |
---|---|
pygame.cdrom | 访问光驱 |
pygame.cursors | 加载光标 |
pygame.display | 访问显示设备 |
pygame.draw | 绘制形状、线和点 |
pygame.event | 管理事件 |
pygame.font | 使用字体 |
pygame.image | 加载和存储图片 |
pygame.joystick | 使用游戏手柄或者 类似的东西 |
pygame.key | 读取键盘按键 |
pygame.mixer | 声音 |
pygame.mouse | 鼠标 |
pygame.movie | 播放视频 |
pygame.music | 播放音频 |
pygame.overlay | 访问高级视频叠加 |
pygame | 就是我们在学的这个东西了…… |
pygame.rect | 管理矩形区域 |
pygame.sndarray | 操作声音数据 |
pygame.sprite | 操作移动图像 |
pygame.surface | 管理图像和屏幕 |
pygame.surfarray | 管理点阵图像数据 |
pygame.time | 管理时间和帧信息 |
pygame.transform | 缩放和移动图像 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
import pygame,sys from pygame.locals import * from random import * class Ball(pygame.sprite.Sprite): def __init__(self,image,position,speed,bg_size): pygame.sprite.Sprite.__init__(self) self.image=pygame.image.load(image) #获取图像位置矩形 self.rect=self.image.get_rect() self.rect.left,self.rect.top=position print(position) self.speed=speed self.width,self.height=bg_size[0],bg_size[1] def move(self): if self.rect.left<0 or self.rect.right>self.width: #水平翻转 self.image=pygame.transform.flip(self.image,True,False) self.speed[0]=-self.speed[0] if self.rect.top<0 or self.rect.bottom>self.height: #垂直翻转 self.image=pygame.transform.flip(self.image,False,True) self.speed[1]=-self.speed[1] self.rect = self.rect.move(self.speed) def main(): pygame.init() ball_image="1.png" bg_image="2.jpg" running=True bg_size=width,height=1024,680 screen=pygame.display.set_mode(bg_size) pygame.display.set_caption("精灵") background=pygame.image.load(bg_image).convert_alpha() balls=[] for i in range(5): position=randint(0,width-165),randint(0,height-261) speed=[randint(1,10),randint(1,10)] ball=Ball(ball_image,position,speed,bg_size) balls.append(ball) clock=pygame.time.Clock() while running: for event in pygame.event.get(): if event.type==QUIT: sys.exit() screen.blit(background,(0,0)) for each in balls: each.move() screen.blit(each.image,each.rect) pygame.display.flip() clock.tick(30) if __name__ == '__main__': main() |
- 我的微信
- 这是我的微信扫一扫
- 我的微信公众号
- 我的微信公众号扫一扫