python pygame入门 - 安装测试篇

news2025/1/21 5:57:51

pygame入门 - 安装篇

  • 引言
  • 一、安装测试
    • 1.1 创建虚拟环境
    • 1.2 安装测试pygame
  • 二、查看例程源码
    • 2.1 源码位置
    • 2.2 简单修改

引言

pygame是Python语言特别为游戏开发而设计的一个开源库。它提供了一系列模块和函数,可以帮助开发者快速构建2D游戏、多媒体应用程序和其他图形用户界面。pygame支持加载和处理图片、声音、视频等多媒体文件,同时还可以在游戏中创建和管理窗口、画布等基本组件。除此之外,pygame还提供了丰富的自定义事件和游戏循环处理方法来实现更加灵活、多样化的游戏玩法。其优势如下:

  • 易于学习:pygame拥有简单的API、易于理解的文档和大量例程,这使得初学者可以很快上手。
  • 广泛的功能:pygame提供了很多有用的功能,如窗口创建、音频和视频播放、事件处理、图像绘制和键盘、鼠标等输入控制,这使得它成为开发多种类型游戏和应用程序的理想选择。
  • 高效性能:pygame使用C语言编写底层库,因此它可以在相关硬件上提供更高的性能。

官方网址:https://www.pygame.org/news

一、安装测试

1.1 创建虚拟环境

创建一个较为纯净的环境,方便后续写代码以及对程序打包等

  • 打开Anaconda Prompt,创建环境conda create --name game-py36 python=3.6,无脑yes,结果如下:
    在这里插入图片描述
  • 新建一个Pycharm工程,python解释器选择新建的环境
    在这里插入图片描述
  • 打开Pycharm最下方的Terminal,默认即为当前环境
    在这里插入图片描述

1.2 安装测试pygame

  • 在上述环境中,安装pygame库,pip install -U pygame --user
    在这里插入图片描述
  • 测试代码,看pygame是否正常安装,运行之后显示一个小蓝框
import pygame

# pygame setup
pygame.init()
screen = pygame.display.set_mode((640, 360))
clock = pygame.time.Clock()
running = True

while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
    screen.fill("blue")
    pygame.display.flip()
    clock.tick(60)  # FPS 60
pygame.quit()

在这里插入图片描述

  • 运行例程,python -m pygame.examples.aliens,一个射击外星人的小游戏:左右移动,空格射击 (挂了多次尝试出来的按键,这游戏连个提示都没得额)…
    在这里插入图片描述

二、查看例程源码

官方文档:https://www.pygame.org/docs/

2.1 源码位置

  • 打印例程源码文件位置,都在安装目录的pygame/examples
import pygame.examples.scaletest
print(pygame.examples.scaletest.__file__)
  • 显示如下,刚安装完,pycharm未能检测到当前环境改变…
    在这里插入图片描述
  • 这里import pygame可以正常运行,但没有代码提示,鼠标悬浮显示No module.....重启Pycharm后正常
    在这里插入图片描述
  • 启动一个例程,根据以上路径找到stars.py文件,使用pycharm打开并运行:
    在这里插入图片描述

2.2 简单修改

查看stars.py源码,修改部分参数

  • 修改NUMSTARS数量:
WINSIZE = [640, 480]     # 窗口大小
WINCENTER = [320, 240]   # 星星起始坐标
NUMSTARS = 1500          # 星星数量 500 -> 1500
  • 看源码发现WINCENTER可由鼠标点击重新赋值
if e.type == pg.MOUSEBUTTONDOWN and e.button == 1:
    WINCENTER[:] = list(e.pos)    # 鼠标点击坐标
  • 最终效果展示如下:
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1064047.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Electronjs入门-Electron中的主要模块

在本节中,我们将了解在Electron中创建任何应用程序时的一些基本模块;这些模块多种多样,使我们能够轻松地进行进程通信,创建操作系统的本地菜单。 为了利用Electron模块,以及任何第三方或Node模块,不仅在主流…

10.3倒水问题(几何图论建模)

坐标图中每一个位置都对应一个合法的状态,BC对5升杯子做出限制,AD对9升杯子作出限制 每次倒水,都只能把目标杯子装满,否则无法确定倒出水的多少与目标杯子此时水的容量 所以例如,倒5升杯子时,只能要么把5…

盘点网安最好入手的10大岗位,就业转行必看

前言 前段时间,知名机构麦可思研究院发布了《2022年中国本科生就业报告》,其中详细列出近五年的本科绿牌专业,信息安全位列第一。 对于网络安全的发展与就业前景已经说过很多,它是收入较高的岗位之一,在转行领域也占…

IO流 之 打印流( PrintStream 和 PrintWriter )

打印流可以实现更加方便的打印数据出去,可以实现打印啥就是啥 PrintStream字节打印流 代码演示,将字符串和其他类型,打印到f.txt文件中。 package day0927;import java.io.FileNotFoundException; import java.io.PrintStream; import java…

伟大不能被计划

假期清理书单,把这个书读完了,结果发现出奇的好,可以说是值得亲身去读的书,中间的一些论述提供了人工智能专业方面的视角来论证这这个通识观点,可信度很不错; 这篇blog也不是对书的总结,更多的是…

LLMs 奖励剥削 RLHF: Reward hacking

让我们回顾一下你到目前为止所学到的内容。RLHF是一个微调过程,用于使LLM与人类偏好保持一致。在这个过程中,您利用奖励模型来评估LLM对提示数据集的完成情况,根据人类偏好指标(如有帮助或无帮助)进行评估。 接下来&…

软件设计开发笔记6:基于QT的Modbus RTU从站

Modbus是一种常见的工业系统通讯协议。在我们的设计开发工作中经常使用到它。作为一种主从协议,在上一篇我们实现了Mobus RTU主站工具,接下来这一篇中我们将简单实现一个基于QT的Mobus RTU从站工具。 1、概述 Modbus RTU从站应用很常见,有一…

山西电力市场日前价格预测【2023-10-07】

日前价格预测 预测说明: 如上图所示,预测明日(2023-10-07)山西电力市场全天平均日前电价为422.87元/MWh。其中,最高日前电价为1500.00元/MWh,预计出现在18: 15-18: 45。最低日前电价为221.56元/MWh&#x…

【JavaEE】_HTTP请求与HTTP响应

目录 1. HTTP协议 2. HTTP请求 2.1 HTTP请求首行 2.2 URL 2.3 HTTP方法 2.3.1 GET请求 2.3.2 POST请求 2.3.3 GET与POST的区别 2.3.4 其他方法 2.4 请求报头header 2.4.1 Host: 2.4.2 Content-Length与Content-Type: 2.4.3 User-Agent&…

JavaScript系列从入门到精通系列第十七篇:JavaScript中的全局作用域

文章目录 前言 1:什么叫作用域 一:全局作用域 1:全局变量的声明 2:变量声明和使用的顺序 3:方法声明和使用的顺序 前言 1:什么叫作用域 可以起作用的范围 function fun(){var a 1; } fun();consol…

练[ZJCTF 2019]NiZhuanSiWei

[ZJCTF 2019]NiZhuanSiWei 文章目录 [ZJCTF 2019]NiZhuanSiWei掌握知识解题思路代码分析1代码分析2 关键paylaod 掌握知识 ​ data伪协议和php伪协议的使用,反序列化,代码审计,文件包含,file_get_contents函数绕过 解题思路 打开题目链接&…

【计算机操作系统慕课版】第二章:进程的控制与描述

注:博主斥巨资买到了2021版本慕课版的pdf 如果需要的话可以来私聊我哦~ 操作系统第二章知识点目录: 一、前言:前驱图与程序执行 1.1前驱图(看箭头就行,名字高级,底层简单) 1.2程序顺序执行 1…

Umijs介绍

今天我们来看 umijs 我们访问官网 https://umijs.org/ 这是一个可 插拔的企业级 React框架 当然 你也可以选择 React 的一个脚手架 但是 这样就有很多需要考虑的东西 用这个umi 很多点 我们就不需要考虑了 框架已经帮我们配置好了 这边 我们点击快速上手的一个 指南 我们可…

vue-img-cutter 实现图片裁剪[vue 组件库]

借助 vue-img-cutter 可以在网页端实现图片裁剪功能,最终功能效果如下: 组件 npm 安装 npm install vue-img-cutter2 --save-dev # for vue2 npm install vue-img-cutter3 --save-dev # for vue3vue-img-cutter使用 template模板标签模块&#xff0c…

用Python操作MySQL教程!干货满满!

python操作数据库介绍 Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口。Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库: GadFly mSQL MySQL PostgreSQL Microsoft SQL S…

Spring基础以及核心概念(IoC和DIQ)

1.Spring是什么 Spring是包含了众多工具方法的IoC容器 2.loC(Inversion of Control )是什么 IoC:控制反转,Spring是一个控制反转容器(控制反转对象的生命周期) Spring是一个loC容器,我们之前学过的List/Map就是数据存储的容器,to…

大数据Doris(五):开始编译 Doris

文章目录 开始编译 Doris 一、下载Doris的安装包 二、解压缩 三、上传配置文件

linux常见命令以及jdk,tomcat环境搭建

目录 Is pwd cd touch cat echo vim 复制粘贴 mkdir rm cp jdk部署 1. yum list | grep jdk进行查找​编辑 2.安装​编辑 3.再次确认 4.判断是否安装成功 tomcat安装 1.下载压缩包,把压缩包上传至linux(可能需要yum install lrzsz) 2.解压缩unzip 压缩包名&…

❓“想创作音乐,但不会编曲?”FL Studio 21 轻松帮你编曲

❓“想创作音乐,但不会编曲?” ❓“不知道如何将各种音乐元素组合起来?” 5个步骤,轻松编曲! 想要成为音乐创作高手,编曲是必不可少的技能。今天为大家带来5个编曲的步骤,让你轻松掌握编曲技巧…