pygame 模块
1. 搭建窗口
import pygame
def main():
# 创建 可以窗口, 参数1 , 是个元祖, 宽和高, 参数2 , 是附加参数, 参数3 是颜色深度
pygame.display.set_mode((400, 300),0, 32)
while True:
# 2 显示窗口
pygame.update()
if __name__ == "__main__":
main()
2. 崩溃bug
原因
- pygame的窗口打开后 点击鼠标,移动鼠标,敲键盘都会有事件发生,这时候需要代码处理作出响应,如果代码没有处理那么程序就会无响应
解决方法:
- 添加获取事件的代码 pygame.event.get()如下
import pygame
def main():
# 1创建一个窗口 参数1 是一个元组 宽和高,参2是附加参数,参3是颜色深度
screen = pygame.display.set_mode((600, 480), 0, 32)
# 2 创建一个背景图片的对象
background = pygame.image.load('bg_test.jpg')
# 3 把背景图片贴到窗口上 参数1 传入图片 参数2是图片的坐标位置
screen.blit(background, (0, 0))
while True:
# 获取事件 这样pygame才能正常响应
pygame.event.get()
# 显示窗口
pygame.display.update()
if __name__ == '__main__':
main()
点击退出
问题
- 点击右上角的x , 发现无法关闭游戏
解决方法
- 因为点击x也是一个事件,叫退出事件,但是窗口的退出事件我们并没有代码进行处理。只需要添加对应代码就好
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wfHJasxe-1576075625004)(en-resource://database/443:1)]
总结
- 发现有一个for循环,因为我们可能操作游戏的时候,同时按下多个按键,也同时可能在移动和点击鼠标,所有pygame.event.get()获取的是一个列表,里面可能是多个事件,所以如果要处理其中一种的话,就要遍历进行判断。
- event.type 中的type属性是事件的类型,当点击退出的x号时,类型就是pygame.QUIT
- 注意:退出pygame后执行exit退出程序