栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

pygame学习

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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:CodePythonPygamepygame8:播放声音和音效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】

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/286637.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号