Python游戏编程之旅(4):pygame中加载位图与常用的数学函数

643 查看

本系列博客介绍以python+pygame库进行小游戏的开发。有写的不对之处还望各位海涵。

在上一篇博客中,我们学习了pygame事件与设备轮询。

这次我们来一起了解一下如何在pygame中加载位图,以及pygame中一些常用的数学函数。

一、pygame中常用的数学函数

首先介绍两个角度和弧度转换的函数:

math.degress()和math.radians(),用法很简单,只要将数值传进去然后接收返回值就可以了。

math.cos(angle),math.sin(angle),这里的angle使用的是弧度表示的,因此需要先使用math.radians(),将角度转换为弧度然后再传参。

如果要获取当前时间,我们需要使用datetime模块。

首先从datetime导入date和time:

使用datetime.today()函数可以获取当前的日期和事件:

today变量里面包含了很多信息,如果我们直接将其打印出来:

这样很不方便我们使用,所以需要对其进行进一步的拆分:

如果只需要当前时间而不需要当前日期的话,可以直接使用datetime.today().time()函数:

Time有很多属性,Time.hour Time.minute Time.second  Time.microsecond,看名字就知道是什么了。

二、pygame中加载位图、绘制位图

通常,游戏中需要加载大量的位图,pygame中自带了一些类和函数可以帮助我们轻松的搞定位图加载和绘制。

上面的代码,我们在前几期的博客中已经使用过很多次了,实际上pygame.display.set_mode()这个函数会返回一个Surface对象,他是位图的一种。

实例中需要的一些素材可以到这里下载:http://yunpan.cn/cLI5cDKQU8sYG  访问密码 c83a

1.加载位图

在pygame中可以使用pygame.image.load()函数来加载位图。(支持jpg,png,gif,bmp,pcx,tif,tga等多种图片格式)。

现在让我们来加载一个位图试试:

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

2.绘制位图

Surface对象有一个名为blit()的方法,它可以绘制位图

第一个参数是加载完成的位图,第二个参数是绘制的起始坐标。我们来看一下完整的程序和效果: