pygame指南贴

由于练习python的缘故打算搞一个pygame的汇总,因为以前没有接触过这个,感觉还挺好玩学习下自己写着玩。

官网:https://www.pygame.org/news

然后我们从一个flappy bird的程序代码开始熟悉一下这些操作。

 

字体相关实例:

STAT_FONT = pygame.font.SysFont("comicsans", 50)  #创建一个font对象字体为comicsans大小50

 功能:

pygame.font.init()  ——  初始化字体模块
pygame.font.quit()  ——  还原字体模块
pygame.font.get_init()  ——  检查字体模块是否被初始化
pygame.font.get_default_font()  ——  获得默认字体的文件名
pygame.font.get_fonts()  ——  获取所有可使用的字体
pygame.font.match_font()  ——  在系统中搜索一种特殊的字体
pygame.font.SysFont()  ——  从系统字体库创建一个 Font 对象 

显示相关实例:

WIN = pygame.display.set_mode((WIN_WIDTH, WIN_HEIGHT))  #准备一个width*height大小的窗口和屏幕
                                  #Pygame 在任何时间内都只允许有一个显示界面。使用 pygame.display.set_mode() 创建的新显示界面会自动替换掉旧的。
pygame.display.set_caption("Flappy Bird")          #窗口名字

 一些功能:

pygame.display.init()  —  初始化 display 模块
pygame.display.quit()  —  结束 display 模块
pygame.display.get_init()  —  如果 display 模块已经初始化,返回 True
pygame.display.set_mode()  —  初始化一个准备显示的窗口或屏幕
pygame.display.get_surface()  —  获取当前显示的 Surface 对象
pygame.display.flip()  —  更新整个待显示的  Surface 对象到屏幕上
pygame.display.update()  —  更新部分软件界面显示
pygame.display.get_driver()  —  获取 Pygame 显示后端的名字
pygame.display.Info()  —  创建有关显示界面的信息对象
pygame.display.get_wm_info()  —  获取关于当前窗口系统的信息
pygame.display.list_modes()  —  获取全屏模式下可使用的分辨率
pygame.display.mode_ok()  —  为显示模式选择最合适的颜色深度
pygame.display.get_active()  —  当前显示界面显示在屏幕上时返回 True
pygame.display.iconify()  —  最小化显示的  Surface 对象
pygame.display.toggle_fullscreen()  —  切换全屏模式和窗口模式
pygame.display.set_gamma()  —  修改硬件显示的 gama 坡道
pygame.display.set_gamma_ramp()  —  自定义修改硬件显示的 gama 坡道
pygame.display.set_icon()  —  修改显示窗口的图标

 img相关:

先来一个实例:

img = pygame.image.load(os.path.join("imgs","pipe.png")).convert_alpha()   #加载一个图片 路径在当前目录下的imgs下名字叫pipe.png 

 convert_alpha()方法会使用透明的方法绘制前景对象,因此在加载一个有alpha通道的素材时(比如PNG TGA),需要使用convert_alpha()方法,当然普通的图片也是可以使用这个方法的,用了也不会有什么副作用。

pipe_img = pygame.transform.scale2x(img)  #对图像进行放大

  下面就是加载并显示这个img图片的方法。

screen = pygame.display.set_mode    #和上面那个win一样
screen.blit(img, (0,0))        #00为绘制的起始坐标

  

 

相关

pygame.image.load()  —  从文件加载新图片
pygame.image.save()  —  将图像保存到磁盘上
pygame.image.get_extended()  —  检测是否支持载入扩展的图像格式
pygame.image.tostring()  —  将图像转换为字符串描述
pygame.image.fromstring()  —  将字符串描述转换为图像
pygame.image.frombuffer()  —  创建一个与字符串描述共享数据的 Surface 对象

  

time模块:

实例:

clock = pygame.time.Clock()   #创建一个clock跟踪时间
pygame.time.delay(30)      #暂停30毫秒

  暂停30毫秒这段话写在了while中,也就是游戏run的时候每一轮迭代都要暂停30毫秒,目的为了控制帧数。

相关:

pygame.time.get_ticks()  ——  获取以毫秒为单位的时间
pygame.time.wait()  ——  暂停程序一段时间
pygame.time.delay()  ——  暂停程序一段时间
pygame.time.set_timer()  ——  在事件队列上重复创建一个事件
pygame.time.Clock()  ——  创建一个对象来帮助跟踪时间

  

然后看一下程序的功能具体是怎样实现的:

1.Bird类(鸟类)

init函数:里面包含了x坐标、y坐标、图片、跳跃能力、重力等参数。

    WIN_HEIGHT = 0
    WIN_WIDTH = 0
    MAX_ROTATION = 25
    IMGS = bird_images
    ROT_VEL = 20
    ANIMATION_TIME = 5

  

jump():鸟的跳跃,通过设置vel属性,把重力射

 

posted @ 2020-06-02 16:12  灰人  阅读(439)  评论(0)    收藏  举报