大家好今天我们开始学习pygame,pygame是python里面最常见的一个2D游戏库,也是非常适合初学者入门,今天我们实现简单的安装以及界面的创建!
pygame简单的介绍:
Pygame是一个开源的Python游戏开发库,提供了一系列游戏编程所需的基本组件和工具,比如图像、声音、事件、碰撞检测等。它建立在SDL库的基础上,让Python程序员更容易地编写2D游戏程序。
pygame官网:点我进入官网(这是pygame的文档说明说)
大家可以看到,有非常多的模块介绍,包括:颜色模块、显示模块、事件模块、字体模块等等,唯一的小遗憾就是英文的,不过没关系,直接翻译,或者用有道词典截屏翻译,哈哈,只要思想不滑坡,办法总比困难多
安装pygame
pip install pygame
基础用法(简直是备注满满啊):
1、导入模块&模块初始化:
尤其是模块初始化,一般很容易忘记写,一定要记得加上
import pygame
pygame.init()
2、设置窗口的宽、高
screen_width = 800
screen_height = 600
3、设置窗口对象
'''
参数:元组:(宽, 高)
'''
screen = pygame.display.set_mode((screen_width, screen_height))
4、设置窗口标题
OK,到这里我们暂停一下,我们发现点击运行,会出现一个窗口,一闪而过,那么说明成功一半了!
接下来我们继续让窗口保持住,不让他消失!
只要写一个无限循环,在里面加个退出事件就OK啦!!
我一般习惯称之为【主循环】,因为几乎所有的事件代码都写在这个循环里,一般也只有这一个循环
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()
到这一步我们的全部代码是:
import pygame
pygame.init()
screen_width = 800
screen_height = 600
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption("My Pygame Test")
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()
视频展示
但是现在窗口黑黢黢的,毫无亮点,我们如何在窗口上加点东西呢!!接着往下看!
我打算写一点字在黑黢黢的窗口上
5、 设置字体样式和大小的对象(还有一种写法:font = pygame.font.Font(“字体路径”, 36))
'''
pygame.font.SysFont("字体样式", 字号)
'''
font = pygame.font.SysFont("Arial", 36)
6、 渲染要显示的文字(上面第5步的字体对象去渲染下面的文本)
'''
font.render("想要显示的文本", True(这里的True表示抗锯齿就是显示的清楚一点), (R, G, B))
'''
text = font.render("Hello, Pygame!", True, (255, 255, 255))
7、贴上去(哈哈,其实按照翻译是传输上去)
下面看一下窗口的坐标图(画的很丑!!哈哈),其实pygame的窗口界面就是平面直角坐标系中的第一象限,只不过,显示在第四象限!
'''
我们已经将文本渲染好了,那么我们需要将渲染号的文本,贴(传输)在窗口上
x = 横轴坐标
y = 纵轴坐标
'''
x = (screen_width - text.get_width()) // 2
y = (screen_height - text.get_height()) // 2
screen.blit(text, (x, y))
8、刷新屏幕(一般写在主循环里)
完整代码&演示视频
import pygame
pygame.init()
screen_width = 800
screen_height = 600
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption("My Pygame Test")
font = pygame.font.SysFont("Arial", 36)
text = font.render("Hello, Pygame!", True, (255, 255, 255))
text_x = (screen_width - text.get_width()) // 2
text_y = (screen_height - text.get_height()) // 2
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()
screen.blit(text, (text_x, text_y))
pygame.display.update()
注意这里的缩进,别写在事件里面
持续更新中。。。。
希望对大家有帮助
致力于办公自动化的小小程序员一枚#
都看到这了,关注+点赞+收藏=不迷路!!
如果你想知道更多关于Python办公自动化的知识各位大佬给个关注吧!