pygame学习

安装与优点
pip install -i https://pypi.doubanio.com/simple/ pygame
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、![](https://img-blog.csdnimg.cn/2019040815190140.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4OTcwNzgz,size_16,color_FFFFFF,t_70)  图像变化
      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】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值