pygame安装_pygame教程(一):基础知识
日期: 2020-11-27 分类: 个人收藏 399次阅读
安装
关于PyGame
的安装,如同python
的第三方包一样,利用pip
进行安装最为方便快捷:
pip install pygame
在安装完成后,在idle
中或是ipython
等交互命令窗口利用以下代码可验证是成功:
import pygame
如果上述代码没有报错,说明这个包已经成功安装,通常会打印出如下信息:
pygame 1.9.6Hello from the pygame community. https://www.pygame.org/contribute.html
动画基本框架
在介绍基本框架时,按照惯例,我们同样可用hello world
来进行演示,代码如下:
import pygame, sysfrom pygame.locals import *pygame.init()curSurface= pygame.display.set_mode((400, 300))pygame.display.set_caption('hello world!')while True: # main game loop for event in pygame.event.get(): if event.type== QUIT: pygame.quit() sys.exit() pygame.display.update()
上述代码一共分为五部分:
- 第一部分:导入
import pygame, sysfrom pygame.locals import *
上述导入的第二行代码是因为
pygame.locals
中含有一些常量,比如上述代码中的QUIT
,以这种方式导入后,在使用时比较方便。 - 第二部分:初始化
pygame.init()
这一句代码是所有采用
pygame
包开发的游戏都必须包含的。 - 第三部分:设定舞台大小及标题等元素
pygame.display.set_mode((400, 300))pygame.display.set_caption('hello world!')
这里是对游戏主窗口一些元素的设定,要注意的是
set_mode
函数接收的是一个tuple
数据类型,并不是两个孤立的数,这一数对指定了要创建窗口的宽和高。当然set_caption
顾名思意就是设置窗口的标题了。 - 第四部分:事件循环
while True: for event in pygame.event.get(): ...
这是游戏的主循环,如果有同学仔细研究了上次的
PySimpleGUI
教程的话,会发现这种处理方式与那个创建窗体后响应事件的方式非常类似,不同的是这里用pygame.event.get()
获取用户对窗口的所有响应。这里要注意,由于用户在同一时间有可能会对窗体进行多种操作,所以pygame.event.get()
将返回一个列表,该列表中每一个元素均为pygame.event.Event
类型,当然,如果用户不曾操作窗体,该列表将为空。 - 第五部分:在事件循环中对相应的事件进行处理
if event.type == QUIT: pygame.quit() sys.exit()
在窗体检测到“退出”指令的时候,程序将首先退出
pygame
,这里的pygame.quit()
是和pygame.init()
完全相反的一种状态,即对其内部创建的东西进行销毁,但程序本身仍然运行,所以还需要调用sys.exit()
才能退出整个程序,当然在整个主循环过程中,为了保证窗体能实时刷新,需要显式调用以下代码:pygame.display.update()
如果将窗体主循环以图形来表示的话,下面这个简图可以很好地说明整个程序是如何执行的:
坐标系统
对于创建动画来说,研究其坐标系统当然是必须的,下面以一个8X8的界面来说明其坐标方向的规定:pygame
的坐标系统与电脑屏幕的坐标系统相同,与小海龟turtle
的坐标是不一样的,有兴趣的同学可以查看前面的教程。
颜色设定
在pygame
中,颜色也是采用RGB方式来设定,从(0,0,0)到(255,255,255)一共有16,777,216种不同的颜色,下表简单列出一些常用的颜色,这些颜色可以用左边相应的字符串名称来表示:
tuple
表示为:
(R, G, B, T)
,透明度
T
也是从0到255;为了用透明度来绘制界面,在代码中必须用
convert_alpha()
创建一个
Surface
对象,比如:
anotherSurface = curSurface.convert_alpha()
然后再用blit
或pygame.image.load()
进行绘制时即可出现透明效果,关于这部分在后续章节将会详细介绍。
创建一种颜色对象有两种方式,以下代码展示了这两种情况:
>>> import pygame >>> mycolor = pygame.Color(255,128,0) >>> mycolor == (255,128,0,255) True>>>
创建区域
创建一个绘图区域,同样有两种方式: 第一种是以(X, Y, Width, Height)
来创建,其中 X和Y分别是所创建区域的左上角顶点的横纵坐标,按pygame
的坐标系统,这两者均为正值,后两项分别规定了所创建区域的宽和高。
第二种是用pygame.Rect
来创建,以下代码演示了两者相同:
>>> import pygame>>> myrect = (10, 20, 100,300)
>>> myrect2 = pygame.Rect(10, 20, 100, 300) >>> myrect == myrect2
True>>>
对于创建的区域rect
,其有以下属性,列表以备查询:
相关资源:pygame游戏之旅 游戏中添加显示文字
除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog
下一篇: [转载] python学习笔记
精华推荐