iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >如何创建第一个Pygame程序
  • 290
分享到

如何创建第一个Pygame程序

2024-04-02 19:04:59 290人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录初始化程序创建Surface对象事件监听游戏循环Pygame 作为一个入门级的游戏开发库,其实并不难学,只要掌握 python 编程的相关知识就能很轻松地掌握它。 Pygame

Pygame 作为一个入门级的游戏开发库,其实并不难学,只要掌握 python 编程的相关知识就能很轻松地掌握它。

Pygame 语法简单、明了,秉持了 Python 语言一贯的风格。同时,它作为一个游戏开发库来说,具有图形编程的基本特点,如果您对于图形编程从未了解过,即使您有 Python 编程基础,也会略感迷茫。因此,在接下来的学习中会详细介绍 Pygame 的常用模块,以及图形编程中的相关概念,帮助您快速掌握 Pygame 的使用。

下面是一个简单的 Pygame 程序,如下所示:


#导入所需的模块
import sys
import pygame
# 使用pygame之前必须初始化
pygame.init()
# 设置主屏窗口
screen = pygame.display.set_mode((400,400))
# 设置窗口的标题,即游戏名称
pygame.display.set_caption('hello world')
# 引入字体类型
f = pygame.font.Font('C:/windows/Fonts/simhei.ttf',50)
# 生成文本信息,第一个参数文本内容;第二个参数,字体是否平滑;
# 第三个参数,RGB模式的字体颜色;第四个参数,RGB模式字体背景颜色;
text = f.render("C语言中文网",True,(255,0,0),(0,0,0))
#获得显示对象的rect区域坐标
textRect =text.get_rect()
# 设置显示对象居中
textRect.center = (200,200)
# 将准备好的文本信息,绘制到主屏幕 Screen 上。
screen.blit(text,textRect)
# 固定代码段,实现点击"X"号退出界面的功能,几乎所有的pygame都会使用该段代码
while True:
    # 循环获取事件,监听事件状态
    for event in pygame.event.get():
        # 判断用户是否点了"X"关闭按钮,并执行if代码段
        if event.type == pygame.QUIT:
            #卸载所有模块
            pygame.quit()
            #终止程序,确保退出程序
            sys.exit()
    pygame.display.flip() #更新屏幕内容

如果您熟悉 Python 编程的基础知识,那么在注释的帮助下,应该能很容易地理解上述代码。假如不能也没有关系,因为接下来,我们会对上述代码进行细致的分析。常言道:“授人以鱼不如授人以渔”,分析代码的逻辑,有助于我们理解和编写 Pygame 程序,而至于代码中涉及的模块、方法等,会在后续内容做详细介绍。

初始化程序

在使用 Pygame 编写程序前,要做的第一个步骤是“初始化程序”,代码如下所示:


pygame.init()

这是整个程序中的第一句代码,它的作用是自动检测 Pygame 软件包是否正常可用,并检查电脑的硬件调用接口、基础功能是否存在问题,比如音频、光驱、声卡驱动等设备。同时,它会完成 Pygame 中所有模块的初始化操作,比如 display(显示模块)、font(字体模块)、mixer(声音控制模块)、cursors(光标控制模块)等。
由此可见,初始化程序的重要性,因此上述代码,在编写程序时候千万不能“漏掉”。

创建Surface对象

想要掌握 Pygame 的编程逻辑,首先就要理解 surface 对象的概念,它是 Pygame 中最重要的组成部分。

Surface 翻译为表面、表层、外观,在 Pygame 中,您可以把 surface 对象理解成一张“白纸”,通过这张纸可以做许多的事情,比如在纸上添加文字、填充颜色、添加图片以及绘制任意形状的图形等。既然是“纸”就有规格尺寸,Pygame 允许您创建任意大小的纸。

那么我们应该如何创建 Surface 对象呢?Pygame 提供了多种创建 Surface 对象的方法,这里先介绍以下几种方法。

上述示例,使用如下方式创建了一个 surface 对象:


#也叫screen对象,本质上是一个Surface,大小400*400
screen = pygame.display.set_mode((400,400))

screen 的本质上就是一个 Surface 对象,它是游戏的主窗口,也就是整个游戏中尺寸最大的“纸”,任何其他的 Surface 对象都需要附着在这张最大的“纸”上,比如创建一个包含文本的 Surface 对象,通过以下方法将它绘制在主屏幕上:


#创建一个包含文字的Surface对象
text = f.render("C语言中文网",True,(255,0,0),(0,0,0))
#通过blit方法将其绘制在主屏幕上,这里的textRect表示位置坐标
screen.blit(text,textRect)

如果想创建一个包含图像的 surface 对象可以使用如下方法:


surface_image =pygame.image.load("图片路径") 

事件监听

游戏,在我们日常生活中经常接触到,无论是手游、还是电脑端游戏,已经成了信息社会中,不可或缺的一部分。

游戏大致来讲是由动画和人机交互的体验两部分构成,其中动画则是由一系列连续静止的图片,经过一定频率的刷新构成的,这个频率被称为 FPS,如果频率值越大则画面越流畅;如果频率值越小则画面会出现卡顿的感,在游戏过程中一般人能接受的最低 FPS 约为 30Hz,如果想要画面流畅则 FPS 要大于 60 Hz。
FPS 越高,细节越好,体验也越好,但是文件容量也越高

动画保证了玩家的视觉体验,而人机交互则是操作上的体验。通过移动和点击鼠标、按下键盘上的技能键,或是滑动手机屏幕等操作来实现人机交互,这些与游戏程序交互的操作被称为事件(Event)。
如果您接触过 javascript,那么您对于“事件”这一名词,一定不会陌生。

Pygame 作为一个游戏开发库,同样具有设置和监听事件的功能。它提供了一个 enevt 事件模块,这个模块中包含了所有常用到游戏事件。下面是退出游戏的代码示例(其他事件类型,后续会做介绍):


# 循环获取事件,监听事件状态,使用get()获取事件
for event in pygame.event.get():
    # 判断事件类型,用户是否点了"X"关闭按钮
    # pygame.QUIT 指点击右上角窗口的"X"号
    if event.type == pygame.QUIT:
        #点击后,卸载所有pygame模块
        pygame.quit()

游戏循环

当打我们游戏时可能会触发游戏中的各种事件,比如鼠标事件、键盘按键事件、摄像拍照事件等等,因此游戏程序需要一直循环监听玩家的操作,只有当用户点击了游戏“关闭”按钮时,监听才会结束。如果想要达到“循环监听”目的,此时就需要设置一个游戏循环(Game Loop)也称为游戏的主循环,这样才能保证人机交互的体验感。代码示例如下:


#游戏主循环(游戏循环)
while True:
    # 循环获取事件,监听事件
    for event in pygame.event.get():
        # 判断用户是否点了关闭按钮
        if event.type == pygame.QUIT:
            # 当用户关闭游戏窗口时执行以下操作
            # 这里必须调用quit()方法,退出游戏
            pygame.quit()
            #终止系统
            sys.exit()
    #更新并绘制屏幕内容
    pygame.display.flip() 

游戏主循环是每个 Pygame 游戏程序中必不可少的一部分,它主要承担着以下三个重要任务:

  • 处理游戏事件
  • 更新游戏状态
  • 把更新后的游戏状态绘制到屏幕上

图2:主循环示意图

游戏画面和游戏操作状态会因为动画效果和玩家的操作而改变,因此需要以循环的方式实时地更新主屏幕(screen)的显示内容。把下列代码放入游戏主循环中即可实现实时更新和绘制屏幕内容,如下所示:


#刷新界面显示
pygame.display.flip() 

除了上述方法外,Pygame 还提供了另一个方法。如下所示:


pygame.display.update() 

这两个方法的主要区别是:后者可以根据选定的区域来更新部分内容,而前者则是更新整个待显示的内容。如果后者没有提供区域位置参数时,其作用和 display.flip() 相同。

通过上述学习,我们对 Pygame 程序有了基本的认识。下面对 Pygame 模块中的方法、属性做更加细致的讲解。

到此这篇关于如何创建第一个Pygame程序的文章就介绍到这了,更多相关创建Pygame程序内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 如何创建第一个Pygame程序

本文链接: https://www.lsjlt.com/news/157588.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何创建第一个Pygame程序
    目录初始化程序创建Surface对象事件监听游戏循环Pygame 作为一个入门级的游戏开发库,其实并不难学,只要掌握 Python 编程的相关知识就能很轻松地掌握它。 Pygame ...
    99+
    2022-11-12
  • 如何使用Python创建第一个CGI程序
    本文小编为大家详细介绍“如何使用Python创建第一个CGI程序”,内容详细,步骤清晰,细节处理妥当,希望这篇“如何使用Python创建第一个CGI程序”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。第一个CGI程...
    99+
    2023-06-08
  • 如何创建并运行第一个C#程序
    C#是一种由微软公司开发的面向对象的编程语言,广泛应用于Windows桌面应用程序、Web应用程序、游戏开发、移动应用程序等领域。C#提供了丰富的类和命名空间,可以帮助开发人员快速构建高质量的应用程序。要创建并运行第一个 C#序,您需要完成...
    99+
    2023-10-22
    创建C#程序
  • 利用Python创建第一个Django框架程序
    目录一.环境变量二.创建Django框架程序三.控制台四.实现Django的应用五.启动项目六.小结一.环境变量 右键我的电脑–>>属性–>...
    99+
    2022-11-11
  • 创建第一个Servlet程序“hello world“(创建流程+页面出错情况)
    目录 🐲 1. 动态页面之Servlet 🐲 2. 写第一个Servlet的程序:"hello world!" 🦄 2.1 创建项目 🦄 2.2 引入Servlet依赖 &#x...
    99+
    2023-10-04
    java 开发语言
  • Android程序开发学习之创建第一个Android程序(Hello World程序)
    Hello World程序 当我们已经搭建好开发环境,接下来我们按照步骤创建Holle World程序 1.程序创建步骤 (1)新建项目,可以如...
    99+
    2022-06-06
    开发学习 hello world 学习 Android
  • 怎么利用Python创建第一个Django框架程序
    这篇文章主要介绍“怎么利用Python创建第一个Django框架程序”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么利用Python创建第一个Django框架程序”文章能帮助大家解决问题。一.环境...
    99+
    2023-07-02
  • 如何创建一个Flex应用程序
    这篇文章主要介绍如何创建一个Flex应用程序,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Flex基础Flex是基于组件来进行开发的,为了更有效率地设计和开发Flex应用程序,你应该熟悉这些开发模式以及操作步骤。创建...
    99+
    2023-06-17
  • SpringBoot教程_创建第一个SpringBoot项目
    目录创建SpringBoot项目可以通过两种方式首先,打开我们的Idea开发工具选择Create New Poject(创建一个新的项目)我们使用Spring Initializr创...
    99+
    2022-11-13
  • eclipse中如何创建第一个tomcat项目
    要在Eclipse中创建第一个Tomcat项目,请按照以下步骤操作:1. 打开Eclipse并选择“File”菜单,然后选择“New...
    99+
    2023-09-27
    eclipse tomcat
  • vue基于electron构建第一个程序
    目录electronmkdir electronelectron引用本地文件新建index.html如何在electron中打开类似于浏览器console的调试窗口?electron...
    99+
    2023-01-11
    vue electron程序构建 vue electron
  • Vue新手指南之创建第一个vue-cli脚手架程序
    1. Vue--第一个vue-cli程序 Vue的开发都是要基于NodeJS,实际开发采用Vue-cli脚手架开发,vue-router路由,vuex做状态管理;Vue UI,界面我...
    99+
    2022-11-12
  • 如何创建自己的第一个React 页面
    目录Rract是啥?背景 React脚手架JSX是什么Rract是啥? React 是用于构建用户界面的 JavaScript 库 构建用户界面. User Interfa...
    99+
    2022-11-12
  • 一步步教你如何创建第一个C#项目
    下面是我做C#第一个项目的过程: 1.首先打开VS,这里我用的是VS2022预览版,鼠标双击打开VS; 图一 2.打开VS后会出现下面的页面,鼠标点击创建新项目; 图二 3.搜索...
    99+
    2022-12-08
    创建第一个c#项目怎么做 C#创建项目 c#新建项目
  • java怎样创建一个jdbc程序
    这篇文章给大家分享的是有关java怎样创建一个jdbc程序的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。JDBC简介Java数据库连接(Java Database Connectivity,JDBC),是一种用于...
    99+
    2023-05-30
    java jdbc
  • 创建Android Studio 3.5第一个工程遇到的坑
    目录 1.弹出“Unable to access Android SDK add-on list”提示 2.新建第一个工程 3.Could not download junit...
    99+
    2022-06-06
    Android Studio studio 工程 Android
  • 微信小程序如何创建一个动画实例
    这篇“微信小程序如何创建一个动画实例”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“微信小程序如何创建一个动画实例”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,希望大家通过这篇文章有所收获,下面让...
    99+
    2023-06-26
  • 【APITable】教程:创建并运行一个自建小程序
    1.进入APITable,在想要创建小程序的看板页面点击右上角的【小程序】,进入小程序编辑页面。    2.创建一个新的小程序区。  点击【+ 添加小程序】  点击创建小程序,选择模板,输入名字。    3.确定后进入小程序部署引...
    99+
    2023-09-07
    小程序
  • 使用python怎么创建一个GUI程序
    本篇文章为大家展示了使用python怎么创建一个GUI程序,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;3、网络爬...
    99+
    2023-06-14
  • 如何创建一个简单的 MVC Codeigniter CRUD 应用程序
    Codeigniter 是需要数据库集成和接口的项目的流行选择。主要原因是用于设置和使用数据库连接的简单框架内选项。这意味着 Codeigniter 是 MVC CRUD 应用程序的绝佳选择。在详细介绍这个 Codeigniter CRUD...
    99+
    2022-05-26
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作