1 什么是surface对象
      pygame用来表示图像的对象
 2 将一个图像绘制到另一个图像上
     得到的是一个图像,通过修改图像的像素得到新的组合图像
 3 移动图像
    截图就是一帧, 帧率指一秒钟可以截多少张图
    pygame支持40-200
    填充背景,将目标绘制(修改像素)到图像上,然后更新,延迟时间(不然会特别快
  4 控制游戏的速度
     使用time模块的delay pygame.time.delay(10)   延迟10毫秒再更新
     或 clock = pygame.time.Clock()   clock.tick(200)  设置为200帧率
  5  pygame效率高学习
          1、事件随时都可能发生,比如你在窗口上面移动鼠标,点击鼠标或者敲击键盘的按键,这些都会产生事件,并且信息量是非常大的。Pygame 的做法就是将这所有产生的事件都放在一个叫做 事件队列里,然后我们通过 for 语句迭代出每一个事件,对我们关注的事件进行处理,像我们刚才关注的 QUIT 事件。
       for event in pygame.event.get(): 
           if event.type \== pygame.QUIT: 
              sys.exit()
                 2、**render() 方法就是将显示的文字活生生的渲染成一个 Surface 对象**,这样你就可以调用 blit() 方法将一个 Surface 对象复制到另一个Surface 上面。
        font \= pygame.font.Font(None,20)#设置字体对象,第一个参数是字体类型(默认为系统字体),第二个参数是大小
        font1 \= font.render(str(event),True,(0,255,0))[[使用font中的render]]方法将事件渲染成图片,第一个参数为要渲染的字符串,第二个参数为是否锯齿化,第三个参数为颜色
        screen.blit(font1,(0,position)#将渲染好的图片添加到原始图像上,后面要跟上位置参数 
         3、**display** 模块的 **set\_mode()** 方法来**指定界面的大小**,这个方法会返回一个 Surface 对象,我们就使用这个 Surface 对象作为界面。
        set_mode(resolution=(0,0),flag=0,depth=0)->Surface
        指定界面大小,什么都不给,默认               指定颜色位数
        第二个参数 flags 是指定扩展选项,同时指定多组选项可以使用 管道操作符 “|”, 这儿是 flags 参数提供的几个可选项:
        选项
        pygame.FULLSCREEN    创建一个全屏显示
        pygame.DOUBLEBUF    1. 双缓冲模式 
        (2) 推荐和 HWSURFACE 或 OPENGL 一起使用
         pygame.HWSURFACE    硬件加速,只有在 FULLSCREEN 下可以使用
         pygame.OPENGL    创建一个 OPENGL 渲染的显示
        pygame.RESIZABLE    创建一个可调整尺寸的窗口
        pygame.NOFRAME    创建一个没有边框和控制按钮的窗口
       4、pygame.display.set\_modes()  显示电脑所支持分辨率
       5、screen = pygame.display.set\_mode(size, pygame.RESIZABLE)
         调整窗口尺寸
         if event.type == pygame.VIDEORESIZE:
             [[这个事件有SIZE]],W,H这三个参数,可以调用
             size = width,height =  event.size
             screen = pygame.display.set_mode(size,pygame.RESIZABLE)
       6、![]()  图像变化
       7、class Ball(pygame.sprite.Sprite) : #继承动画精灵基类
       8、sprite 模块提供了 spritecollide() 方法用于 检测某个精灵是否与指定的组中的其它精灵发生碰撞。
       spritecollide(sprite, group, dokill, collided = None)
       第一个参数 sprite 是指定被检测的精灵;(就是我们写的里面的 item)
       第二个参数 group 是指定一个组(就是我们写的里面的 target 列表),它是 sprite 的组,因此要使用 sprite.Group() 来生成;
       第三个参数 dokill 是设置是否从组中删除检测到碰撞的精灵,设置为True,则删除;
       第四个参数 collided 是指定一个回调函数,用于定制特殊的检测方法,如果第四个参数忽略的话,默认是检测精灵之间的 rect 属性。
       > collide\_circle(left, right) 方法适用于检测两个圆之间是否发生碰撞,left 和 right 参数分别是两个精灵,所以我们直接 使用
       > collided = pygame.sprite.collide\_circle
       9、pygame.mixer.music.load(r"D:\Code\Python\Pygame\pygame8:播放声音和音效\bg_music.ogg")  [[为ogg]]格式
       pygame.mixer.music.set_volume(0.2)  #设置音量
       pygame.mixer.music.play()   #播放背景音乐
       #设置一个背景音乐完毕之后的结束事件 
       GAMEOVER \= USEREVENT pygame.mixer.music.set\_endevent(GAMEOVER) [[当音乐播完后,发送一个GAMEOVER]]事件
       10、pygame.mouse.set\_visible() —— 隐藏或显示鼠标光标  
             pygame.mouse.get\_pos() —— 获取鼠标光标的位置
       11  screen.blit(each.image, each.rect) #图像,位置
       12.rect的上下左右分别为矩形边到x和y轴的距离,
       black\_ball\_image.get\_rect()  #获得矩形位置
       black\_ball\_temp.get\_width()  #获得矩形宽度
       event.pos为事件的位置  【x,y】