当前位置: 首页 > news >正文

用于游戏开发的顶级 PYTHON 框架

一、说明

        我们试图用python开发游戏,一旦产生这个念头,就伴随这样一个问题:当今用于构建游戏的领先 Python 框架有哪些?python下,支持游戏开发平台有哪些优势?我们在这篇博文中告诉你。

二、高级游戏平台简介

用于构建游戏的主要 Python 框架有哪些?如果你对游戏开发感兴趣,这是你在某个时候必然会面临的问题。(您可能还想查看我们关于当今领先游戏开发引擎的博客:Top 10 Game Development Engines in 2023。Python 是世界上最流行的编码语言,它被当今各行各业使用,包括游戏构建。事实上,许多 Python 框架被用作游戏开发的关键工具。这些是软件框架,通过帮助自动执行游戏开发中通常执行的多项任务来支持游戏/游戏应用程序的创建。例如,《战地风云 2》是一款使用 Python 框架制作的流行游戏。

那么,今年哪些是用于游戏开发的领先 Python 框架呢?下面分享的是顶级名称:

2.1 pygame

        Pygame 是一个开源的 Python 库,可帮助用户使用 Python 编程创建功能丰富的游戏和多媒体应用程序。从本质上讲,它是一组专为编写视频游戏而设计的跨平台 Python 模块,包括旨在与 Python 编程语言一起使用的计算机图形和声音库。它具有高度的可移植性,可在所有平台和操作系统上运行,并使用优化的 C 语言和汇编代码来实现核心功能。

        Pygame使用简单DirectMedia Layer(SDL)库,从而促进了实时计算机游戏开发,而无需C编程语言及其衍生语言的低级机制。使用 Pygame 的应用程序可以在 Android 手机和平板电脑上运行,并使用适用于 Android 的 Pygame Subset。Pygame还得到了一个强大的社区的支持,该社区为那些想要使用它的人创建了许多教程。

2.2 Pyglet

        Pyglet 还用于多个操作系统上的 Python 游戏开发和其他视觉丰富的应用程序。这是一个功能强大的开源、跨平台窗口和多媒体库,可以支持用户界面事件处理、窗口和全屏操作、多个显示器、来自库 OpenGL 的图形、操纵杆、加载图像和视频以及音频播放。Pyglet 在 Python 3.5+ 下运行,没有外部依赖关系,也不需要安装。

        它运行在Microsoft Windows,Mac OS X和Linux上,并在BSD许可下发布,基本上提供了一个面向对象的应用程序编程接口,用于构建游戏和其他多媒体应用程序。

2.3 熊猫3D

        Panda3D 是一个免费使用的引擎,用于构建实时 3D 游戏、可视化、模拟和实验。它包括图形、音频、I/O、碰撞检测和其他在制作 3D 游戏时派上用场的功能。它是修订后的 BSD 许可证下的开源软件。

        它用 Python 和 C++ 编写,拥有前一种语言提供的优势,例如快速开发和高级内存管理,即使它包括用于处理和优化源代码的命令行工具。同样有帮助的是,Panda3D 支持几个流行的第三方库,例如 Bullet 物理引擎、OpenAL、Assimp 模型加载器和 FMOD 声音库。

        Panda3D 的用户通常是商业游戏、一些开源项目和几门利用 Panda3D 较短学习曲线的大学课程的开发者。社区可能很小,但非常活跃。

2.4 PyKyra 

        基于软件和文档本地化 (SDL) 和 Kyra 引擎,PyKyra 据说是最快的 Python 游戏开发框架之一。它不仅支持 Kyra 框架的标准功能,还支持 MPEG 视频、直接图像读取、MP3、Ogg Vorbis、Wav、多声道模块文件等声音。

        此外,它还支持侧面对称和自上而下的平移。在这里,用户可以将屏幕划分为子窗口视图,每个视图都有自己的对象转换。这也有助于 Kyra 引擎速度快,并配备了用于渲染更新的专用编码算法。

2.5 基维Kivy

        Kivy 是一个开源和跨平台的 Python 库,可在 Linux、Windows、OS X、Android、iOS 和 Raspberry Pi 上运行。它带有多点触控应用程序;事实上,它有 20 多个可以轻松扩展的小部件。此外,它可以原生使用大多数输入、协议和设备,包括 WM_Touch、WM_Pen、Mtdev、Linux 内核 HID、Mac OS X 触控板和魔术鼠标以及 TUIO。它用于应用程序和软件的快速开发,是一个稳定的框架,带有完整文档化的 API 和编程指南,以帮助用户很好地使用它。

2.6 PyOpenGL的

        PyOpenGL 是图形库 OpenGL 和相关应用程序编程接口 (API) 的跨平台 Python 绑定。该绑定是使用标准 ctypes 库构建的,并在极其自由的 BSD 风格的开源许可证下提供。它可以与许多用于 Python 的外部 GUI 库互操作,例如 PyGame、PyQt、Raw XLib 等。

2.7 Python Ogre/PyOgre

        Python-Ogre / PyOgre 是用于 Ogre 3D 渲染引擎的 C++ 库的 Python 绑定,它具有令人印象深刻的功能集,并已用于创建令人印象深刻的游戏。因此,从本质上讲,PyOgre 包含两个库:Ogre3d 和 CEGUi,一个嵌入式 GUI 系统。PyOgre 是一个跨平台库,可在 Windows 和 Linux 下运行,兼具速度和灵活性。

2.8 Cocos2d的

        Cocos2d 是一个用 Python、C++ 和 Objective C 编写的开源软件框架,用于构建游戏、应用程序和基于 GUI 的跨平台交互式程序。Cocos2d 系列由 Cocos2d-objc、Cocos2d-x、Cocos2d-html5 和 Cocos2d-XNA 组成。

        Cocos2d 社区有一些独立的编辑者,他们在 SpriteSheet 编辑、粒子编辑、字体编辑和 Tilemap 编辑等领域做出了贡献,还有包括 SpriteBuilder 和 CocoStudio 在内的世界编辑器。

2.9 Ren’Py

        Ren是一个用 Python 和 Cython 编写的开源和跨平台引擎(Cython 代码主要用 Python 编写,带有可选的附加 C 启发语法,旨在提供类似 C 的性能)。它建立在 Pygame 之上,是一个用于创建视觉小说的自由软件游戏引擎。借助该引擎,可以将文字、图像和声音结合起来制作视觉和生活模拟游戏。它还支持 Python 脚本语言,因此使开发人员能够处理复杂的游戏逻辑,并在几乎所有计算机系统上运行。

        使用 任 的开发人员可以创建分支故事、保存文件系统、回滚到故事中的先前点以及执行许多场景转换。该引擎还支持全屏电影和动画精灵的影片播放。

三、后记

        其实每种平台有多大人气尚不明确,值得欣赏的是pygame和openGL的组合模式相当不错,推荐原因有两个:1)openGL是英伟达绑定的产品,是十足的游戏产品;2)pygame不仅支持openGL窗口,还有用户交互,这为游戏可操纵性带来方便。

相关文章:

用于游戏开发的顶级 PYTHON 框架

一、说明 我们试图用python开发游戏,一旦产生这个念头,就伴随这样一个问题:当今用于构建游戏的领先 Python 框架有哪些?python下,支持游戏开发平台有哪些优势?我们在这篇博文中告诉你。 二、高级游戏平台简…...

【MongoDB】docker安装mongodb 7.0

下载镜像 docker pull mongo创建本地数据存储文件夹 rootxrx:~/etc# tree mongodb/ mongodb/ └── data使用docker创建容器,并挂载配置文件,并设置密码 docker run -p 5233:27017 -v /root/etc/mongodb/data:/data/db --name mongo -e MONGO_INITDB_ROOT_USERNAMEroot -…...

win10安全中心误删文件怎么办?解析恢复与预防策略

在使用Windows 10的过程中,许多用户依赖于其内置的安全中心来保护电脑免受恶意软件的侵害。然而,有时安全中心的误判可能导致重要文件被错误地删除。当面对这种情况时,了解如何恢复误删的文件并掌握预防措施显得尤为重要。本文将为您详细解析…...

如何锁定MYSQL内存在物理内存里?

MYSQL 8.0 这个参数是 OFF 这个参数是啥意思呢? 按英文单词理解是 锁定在内存意思.突然想起来是因为 周报巡检时主库有使用SWAP内存 而从库却使用更多 使用脚本查看SWAP 进程排序 for i in cd /proc;ls |grep "^[0-9]"|awk $0 >100 ;do awk /Swap:/{aa$2} EN…...

vue菜单栏跳转方案

vue菜单栏跳转方案 <template><div><el-container style"height: 100vh"><el-aside width"200px" style"background-color: #b3c0d1"><el-menuopen"handleOpen"close"handleClose"select"h…...

科技企业如何做到FTP数据安全保护

在数字化浪潮的推动下&#xff0c;科技企业的数据已成为推动创新、提升效率、增强竞争力的核心资源。数据的重要性不言而喻&#xff0c;它不仅包含了客户信息、市场分析、产品设计等关键信息&#xff0c;更是企业宝贵的资产。然而&#xff0c;随着数据量的激增&#xff0c;数据…...

Ubuntu服务器fail2ban的使用

作用&#xff1a;限制ssh远程登录&#xff0c;防止被人爆破服务器&#xff0c;封禁登录ip 使用lastb命令可查看到登录失败的用户及ip&#xff0c;无时无刻的不在爆破服务器 目录 一、安装fail2ban 二&#xff0c;配置fail2ban封禁ip的规则 1&#xff0c;进入目录并创建ssh…...

全量知识系统问题及SmartChat给出的答复 之10 三套工具之5语法解析器之3

Q27. 从前面可以看出&#xff0c;IPP解析器给出两种文法规则&#xff0c;一种是人工的&#xff08;文字处理和文本理解&#xff09;&#xff0c;一种是机器的&#xff08;图形算法和图像处理&#xff09;。前者可以是一套文写文章的注释工具的底层&#xff0c;可以使用颜色来着…...

【leetcode】环形链表✚环形链表II

大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家刷题&#xff0c;如果你觉得我写的还不错的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 目录 1.环形链表解题拓展&#xff1a; 2.环形链表II 1.环形链表 点击查看题目 解题 思路: bool hasCycle…...

SparkStreaming在实时处理的两个场景示例

简介 Spark Streaming是Apache Spark生态系统中的一个组件&#xff0c;用于实时流式数据处理。它提供了类似于Spark的API&#xff0c;使开发者可以使用相似的编程模型来处理实时数据流。 Spark Streaming的工作原理是将连续的数据流划分成小的批次&#xff0c;并将每个批次作…...

02点亮一个LED

书接上回 上回讲到创建一个示例工程 今天讲如何实现LED的点亮 点亮一个led 所需代码 参考来源网络 延时函数参考&#xff1a; Delay.c #include "stm32f10x.h"/*** brief 微秒级延时* param xus 延时时长&#xff0c;范围&#xff1a;0~233015* retval 无*/ vo…...

【代码分享】

//插入排序 void lnsertionSort(int a[], int n) { int end 0; int tmp 0; int i 0; for (i 0;i < n - 1; i) { end i; tmp a[end 1]; while (end > 0) { if (a[end] > tmp) { a[end 1] a[end]; end–; } else { break; } } a[end 1] tmp; } } //希尔排序…...

windows 使用ffmpeg .a静态库:读取Wav音频并保存PCM

ffmpeg读取Wav音频并保存PCM&#xff08;源代码保存成 c 文件&#xff09;&#xff1a; // test_ffmpeg.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 ////#include <iostream>#include <libavcodec/avcodec.h> #include <libavform…...

Docker部署ZooKeeper

在分布式系统中,ZooKeeper是一个关键的组件,用于协调和管理多个节点之间的状态。本文将详细介绍如何使用Docker安装和部署ZooKeeper,包括非集群部署和集群部署两种情况。 非集群部署 前期准备 在开始之前,请确保你已经安装了Docker,并且拥有sudo权限。 关闭防火墙和SEL…...

在PyCharm中使用Git

安装Git CMD检查Git版本 打开cmd&#xff0c;输入git version&#xff0c;检查当前下载版本 配置git的user信息 在cmd中输入 git config --global user.name "用户名"git config --global user.email "用户邮箱"输入&#xff1a;git config --list&…...

【JavaSE】 P165 ~ P194 抽象方法,抽象类,接口,接口内容,多接口实现和父类继承,多态,向上转型,向下转型

目录 抽象抽象的概念抽象方法和抽象类的格式抽象方法和抽象类的使用抽象方法和抽象类的注意事项● 练习1. 写一个父类图形类&#xff0c;其中有方法&#xff0c;功能计算面积为抽象方法。2. 抽象类继承。判断对错,没错的分析运行结果3. 发红包,群内用户类作为父类&#xff0c;有…...

LeetCode: 数组中的第K个最大元素

问题描述 在未排序的数组中找到第k个最大的元素。请注意&#xff0c;你需要找的是数组排序后的第k个最大的元素&#xff0c;而不是第k个不同的元素。 解题思路 解决这个问题有多种方法&#xff0c;下面是几种常见的解题策略&#xff1a; 排序后选择: 将数组排序&#xff0c…...

亚马逊自养号测评:如何安全搭建环境,有效规避风险

要在亚马逊上进行自养号测评&#xff0c;构建一个真实的国外环境至关重要。这包括模拟国外的服务器、IP地址、浏览器环境&#xff0c;甚至支付方式&#xff0c;以创建一个完整的国际操作环境。这样的环境能让我们自由注册、养号并下单&#xff0c;确保所有操作均符合国际规范。…...

uniApp 调整小程序 单个/全部界面横屏展示效果

我们打开uni项目 小程序端运行 默认是竖着的一个效果 我们打开项目的 pages.json 给需要横屏的界面 的 style 属性 加上 "mp-weixin": {"pageOrientation": "landscape" }界面就横屏了 如果是要所有界面都横屏的话 就直接在pages.json 的 gl…...

【java】18:内部类(2)匿名内部类

&#xff08;1&#xff09;本质是类&#xff08;2&#xff09;内部类&#xff08;3&#xff09;该类没有名字&#xff08;4&#xff09;同时还是一个对象 说明&#xff1a;匿名内部类是定义在外部类的局部位置&#xff0c;比如方法中&#xff0c;并且没有类名 1.匿名内部类的…...

【杂谈】-递归进化:人工智能的自我改进与监管挑战

递归进化&#xff1a;人工智能的自我改进与监管挑战 文章目录 递归进化&#xff1a;人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管&#xff1f;3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 &#xff08;一&#xff09;实时滤波与参数调整 基础滤波操作 60Hz 工频滤波&#xff1a;勾选界面右侧 “60Hz” 复选框&#xff0c;可有效抑制电网干扰&#xff08;适用于北美地区&#xff0c;欧洲用户可调整为 50Hz&#xff09;。 平滑处理&…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中&#xff0c;我们可能会遇到一些流式数据处理的场景&#xff0c;比如接收来自上游接口的 Server-Sent Events&#xff08;SSE&#xff09; 或 流式 JSON 内容&#xff0c;并将其原样中转给前端页面或客户端。这种情况下&#xff0c;传统的 RestTemplate 缓存机制会…...

ServerTrust 并非唯一

NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...

PL0语法,分析器实现!

简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...

C# SqlSugar:依赖注入与仓储模式实践

C# SqlSugar&#xff1a;依赖注入与仓储模式实践 在 C# 的应用开发中&#xff0c;数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护&#xff0c;许多开发者会选择成熟的 ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;SqlSugar 就是其中备受…...

《基于Apache Flink的流处理》笔记

思维导图 1-3 章 4-7章 8-11 章 参考资料 源码&#xff1a; https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术&#xff0c;它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton)&#xff1a;由层级结构的骨头组成&#xff0c;类似于人体骨骼蒙皮 (Mesh Skinning)&#xff1a;将模型网格顶点绑定到骨骼上&#xff0c;使骨骼移动…...

Spring数据访问模块设计

前面我们已经完成了IoC和web模块的设计&#xff0c;聪明的码友立马就知道了&#xff0c;该到数据访问模块了&#xff0c;要不就这俩玩个6啊&#xff0c;查库势在必行&#xff0c;至此&#xff0c;它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据&#xff08;数据库、No…...

GC1808高性能24位立体声音频ADC芯片解析

1. 芯片概述 GC1808是一款24位立体声音频模数转换器&#xff08;ADC&#xff09;&#xff0c;支持8kHz~96kHz采样率&#xff0c;集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器&#xff0c;适用于高保真音频采集场景。 2. 核心特性 高精度&#xff1a;24位分辨率&#xff0c…...