pycharm中pygame模块的安装与用法

一、pygame的安装

本文章主要展示pycharm中的pygame模块的安装。打开pycharm,在左上角点file,找到settings。如图

进入后,找到Project:untitled下的Project interperter。

 

右边是已经安装好的模块。

如图

 

点击“+”以安装pygame为例,如图

 点击左下角,install package,如图

二、pygame模块的使用方法

模块的用法解释

display模块

生成windows窗口,pygame.display.set_mode(resolution=(0,0),flags=0,depth=0)

返回的也是一个surface对象,resolution可以控制生成windows窗口的大小,flags代表的是扩展选项,depath不推荐设置

flags标志位控制你想要什么样的显示屏,主要有下面几个,这几个量相当于是全局的常量,使用的时候可以

from pygame.locals import *导入

#初始化pygame,为使用硬件做准备
pygame.init()
pygame.time.Clock()
ftpsClock = pygame.time.Clock()
#创建一个窗口
gamesurface = pygame.display.set_mode((640,480))
#设置窗口标题
pygame.display.set_caption('tanchishe snake')

pygame.FULLSCREEN,控制全屏,0或者1来控制

pygame.HWSURFACE 控制是否进行硬件加速

pygame.RESIZABLE 控制窗口是否可以调节大小

pygame.display.get_caption()获得窗口的标题

pygame.display.set_caption(title)设置窗口的标题

#设置窗口标题
pygame.display.set_caption('tanchishe snake')

对生成的windows窗口设置标题 pygame.display.set_caption("")传入的则为字符串,可以利用字符串来设置窗口上的标题

pygame.display.flip()则是由于双缓冲的原因,需要将整个display的surface对象更新到屏幕上去

surface模块

surface对象是用于表示图像的图像,只要指定尺寸,就可以利用,可以通过加载图片或者是可以自动创建一个surface对象

加载图像返回的也是一个surface对象,这里可能就会用到image模块

pygame.surface((width,height),flag=0,depth =0,mask = None)

surface.copy()返回调用实例的副本,也是一个surface对象

pygame.surface.blit(sourse,dest,area = None,special_flag=0)这里的surface不是模块名而是一个创建好了的surface实例,比如之前创建的screen的surface对象

方法表示将一个surface对象画在另一个surface对象之上,sourse为要画的surface对象,表示要将哪一个surface对象画在调用的实例上,而dest则是要画在实例surface对象的什么位置,如果这个参数传入的是一个rect对象,则会取rect对象的左上角的点作为要开始画的地方,而与rect对象的大小是无关的,后面的area则说明是画其中的一部分,还是完整的画上去。这个参数也可以传一个rect对象

pygame.surface.fill(color)

对surface对象填充某一种颜色,可以主要是对背景可以实现填充

surface.get_rect()返回的是调用实例即为surface对象的rect对象

surface.subsurface(Rect)

传入一个矩形对象,为了返回实例surface对象中矩形的一部分,新的surface对象将继承他的父亲,颜色以及透明度设置上都继承了它的父对象

surface.set_at((x,y),color)设置某一像素位置的颜色

surface.get_at((x,y))获得某一像素位置的颜色

surface.get_width()返回surface对象的宽度

surface.get_height()返回surface对象的高度

mouse模块主要是针对于鼠标事件进行控制

pygame.mouse.get_pos()获得鼠标指针当前的位置,返回的值为元祖类型,即为(x,y),返回值与显示屏的Top-Left值是息息相关的。

鼠标事件中有pos成员,代表的是按下鼠标或者是释放鼠标的时候记录下当前鼠标指针的位置,以(x,y)

的形式返回,而鼠标事件的button属性则可以分别取值为1,2, 3,4,当button=1时的时候代表的是按下鼠标左键,当button=2的时候代表的是按下鼠标右键,当button =3的时候代表的是按下鼠标右键,当button =4的时候代表的是按下鼠标滚轮

pygame.mouse.get_rel()返回的是鼠标距离上一次次在横纵轴方向的位移大小

pygame.mouse.set_visible(bool)设置鼠标是否是可见的

pygame.mouse.get_pressed()返回一个三元组,都是bool类型的取值来代表用户按下的是(button1,button2,button3)中的哪一个键

pygame.event模块主要是人机交互时所产生的事件进行控制,移动鼠标会触犯相关的事件,按下鼠标左键也会触发相关的事件,按下键盘上的某一些键也会触发相关的事件。这里列举一些比较常用的事件

事件类型         基于事件类型的成员

QUIT                  None

ACTIVEVENT  gain ,state

KEYDOWN      unicode ,key , mode

KEYUP             key,mode

MOUSEMOTION      pos,rel,bottons

MOUSEBUTTONDOWN     pos,button

MOUSEBUTTONUP           pos,button

pygame.event.get()返回的是一个事件列表,可以通过迭代不断从列表中获得事件,根据事件的类型分别进行处理

默认是无参数的,但是也可以传入参数,比如传入某一种事件类型,返回值就是属于这一类型的事件列表,也可以传入一个列表,列表中是需要返回的多个事件类型,返回值也会相应的返回发生了的事件

生成一个特定的时间

pygame.event.Event(type,dict)

pygame.event.Event(type,**attribute)这两种方法都返回指定类型和属性的时间,可以将属性放在列表中,也可以中**来表示多个不定量的属性

pygame.rect模块,Rect对象是用来存储矩形对象的,Rect对象有一些虚拟属性,比如top.left,bottom.right这些是用来固定矩形的位置的,还有size,width,height,这些是描述矩形大小,宽高分别是多大,center为矩形的中心点,其实就是关于横纵坐标的二元组,因此又有centerx,centery两个属性

rect,move(speed),表示是rect对象在横轴和纵轴方向上移动的标杆,其实就是速度,通常获得surface对象的rect对象,可以利用rect对象的move方法来使得surface对象进行移动

生成一个Rect对象

pygame.Rect(left,top,width,height)或者是pygame.Rect((left,top),(width,height)),left,top其实就是矩形左上点的横纵坐标,用来控制生成rect对象的位置,而后面的宽度和高度则是用来控制生成矩形的大小尺寸的,也可以传入一个object对象从而生成rect对象

pygame.transform模块

pygame..transform.flip(surface,xbool,ybool),第一个参数控制的是需要翻转的对象,而后面两个参数则是控制是在水平方向翻转还是在垂直方向进行翻转,返回的是翻转后的surface对象

pygame.transform.smoothscale(surface,(width,height),DestSurface = None)返回的是平滑放大或者是缩小后的surface对象,第一个参数就是需要放大或者是缩小的对象,后面的我们要放大缩小后达到的size

pygame.transform.rotate(surface,angle)返回一个旋转后的surface对象,默认是按照逆时针进行旋转的,当angle小于0时则代表的顺时针进行旋转

pygame.transform.chop(surface,rect)返回裁剪的部分,rect也表示要裁剪的区域

pygame.font模块

pygame.font.Font(filename,size)返回font对象,

font.get_linessize()

font.render(text,antialias,color,background=None)返回的是surface对象,文本并不能直接显示出来,需要先把文本渲染成图片画到另一个surface对象上才能正常的显示出来。font为实力,text参数只能是单行文本,antilalias则是bool类型的值,用来控制文本的边是否是锯齿状的还是圆滑型的。后面分别是文本颜色和文本的背景颜色

  • 31
    点赞
  • 123
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值