【Pygame】 游戏开发 基础知识
创始人
2024-02-02 09:19:42

【Pygame】 第一课 游戏开发 基础知识

  • 概述
  • Pygame 的安装
  • Pygame 基础命令
    • pygame.locals 模块
    • pygame.init()
    • pygame.display.set_mode()
    • 案例
  • Pygame 显示文字
    • pygame.font.Font()
    • fill()
    • render()
    • blit()
    • pygame.display.update()
    • 案例
      • 显示英文
      • 显示中文

概述

Pygame 是一个跨平台的 Python 模块, 专为电子游戏设计. Pygame 在已经非常优秀的 SDL 库的基础上增加了许多功能.

在这里插入图片描述

Pygame 的安装

安装命令:

pip install pygame

导入 Pygame 包:

import pygame

在这里插入图片描述

Pygame 基础命令

pygame.locals 模块

pygame.locals模块包括了 pygame 中定义的各种常量.

导入所有常量

from pygame.locals import *

pygame.init()

pygame.init()是启动 pygame 并初始化的命令, 类似 python 中的__init__.

例子:

# 导入模块
import pygame# 初始化 pygame
pygame.init()

pygame.display.set_mode()

pygame.display.set_mode()是初始化 pygame 窗口的命令.

格式:

pygame.display.set_mode(size=(0, 0), flags=0, depth=0, display=0, vsync=0)

参数:

  • size: 窗口大小 (分辨率), 类型为元组, 分别表示宽和高
  • flags: 额外参数
  • depth: 位深 (色彩深度)
  • display: 显示模式, 可以使用 & 或 | 一次设置 2 种模式
    • pygame.FULLSCREEN: 全屏
    • pygame.DOUBLEBUF: OPENGL 兼容
    • pygame.HWSURFACE: 硬件加速
    • pygame.OPENGL: 可使用 OpenGl 的显示
    • pygame.RESIZABLE: 可调整大小的显示
    • pygame.SCALED: 适应电脑屏幕大小
    • pygame.SHOWN: 可视 (默认)
    • pygame.HIDDEN: 隐藏

例子:

# 显示一个分辨率 600*400 的窗口
screen = pygame.display.set_mode((600, 400))

在这里插入图片描述

案例

import pygame
import sys# 导入pygame中的常量
from pygame.locals import *# 初始化pygame
pygame.init()# 设置游戏窗口的尺寸, set_mode 函数的参数用元组表示尺寸 (width和height)
pygame.display.set_mode((600, 600))# 捕获游戏的事件
typelist = [QUIT]while True:# 获取事件for event in pygame.event.get():# 接收到退出事件, 退出程序if event.type in typelist:sys.exit()  # 退出

Pygame 显示文字

pygame.font.Font()

pygame.font.Font()可以帮助我们来设置字体和字体大小.

格式:

pygame.font.Font(filename, size)

参数:

  • filename: 字体文件路径
  • size: 字体大小

例子:

# 设置字体和字号
myFont = pygame.font.Font(None, 60)

fill()

screen.fill()用于填充 pygame 窗口背景色的命令.

格式:

screen.fill(color, rect=None, special_flags=0)

参数:

  • color: 背景的颜色, RGB
  • rect: 颜色填充的范围
  • special_flags: 额外参数

例子:

screen.fill((0, 0, 200)

render()

Font.render()用于创建文本并转换为图像.

格式:

Font.render(text, antialias, color, background=None)

参数:

  • text: 文字
  • antialias: 反锯齿, True / False
  • color: 颜色, 格式 RGB
  • background: 背景颜色, 默认为 None

例子:

textImage = myFont.render("Hello Pygame", True, (255, 255, 0)

blit()

screen.blit()用于将图像显示到我们要显示的地方.

格式:

screen.blit(source, dest, area=None, special_flags=0)

参数:

  • source: 需要移动的表面 (图像)
  • dest: 目标位置, 类型元组
  • area: 显示面积, 默认为 None
  • special_flags: 额外参数

例子:

screen.blit(textImage, (10, 60))

pygame.display.update()

pygame.display.update()用于更新显示.

案例

显示英文

代码:

import pygame
from pygame.locals import *
import sysyellow = (255, 255, 0)  # 文字颜色
blue = (0, 0, 200)  # 背景颜色# 初始化 pygame
pygame.init()# 设置窗口尺寸
screen = pygame.display.set_mode((600, 400))# 设置字体和字号
myFont = pygame.font.Font(None, 60)# 将文字转换为图像, 消除锯齿
textImage = myFont.render("Hello Pygame", True, yellow)# 填充背景
screen.fill(blue)# 显示文字
screen.blit(textImage, (10, 60))# 更新显示
pygame.display.update()# 捕获游戏事件
typelist = [QUIT]while True:# 获取事件for event in pygame.event.get():# 接收到退出事件, 退出程序if event.type in typelist:sys.exit()  # 退出

输出结果:
在这里插入图片描述

显示中文

代码:

import pygame
from pygame.locals import *
import sysyellow = (255, 255, 0)  # 文字颜色
blue = (0, 0, 200)  # 背景颜色# 初始化 pygame
pygame.init()# 设置窗口尺寸
screen = pygame.display.set_mode((600, 400))# 设置字体和字号 (仿宋)
myFont = pygame.font.Font("C:\Windows\Fonts\simfang.ttf", 60)# 将文字转换为图像, 消除锯齿
textImage = myFont.render("你好 Pygame", True, yellow)# 填充背景
screen.fill(blue)# 显示文字
screen.blit(textImage, (10, 60))# 更新显示
pygame.display.update()# 捕获游戏事件
typelist = [QUIT]while True:# 获取事件for event in pygame.event.get():# 接收到退出事件, 退出程序if event.type in typelist:sys.exit()  # 退出

输出结果:

在这里插入图片描述

相关内容

热门资讯

脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...