当前位置: 首页 > 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.匿名内部类的…...

第19节 Node.js Express 框架

Express 是一个为Node.js设计的web开发框架&#xff0c;它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用&#xff0c;和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

智慧医疗能源事业线深度画像分析(上)

引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了&#xff1a;一行…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

【Java学习笔记】Arrays类

Arrays 类 1. 导入包&#xff1a;import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序&#xff08;自然排序和定制排序&#xff09;Arrays.binarySearch()通过二分搜索法进行查找&#xff08;前提&#xff1a;数组是…...

企业如何增强终端安全?

在数字化转型加速的今天&#xff0c;企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机&#xff0c;到工厂里的物联网设备、智能传感器&#xff0c;这些终端构成了企业与外部世界连接的 “神经末梢”。然而&#xff0c;随着远程办公的常态化和设备接入的爆炸式…...

逻辑回归暴力训练预测金融欺诈

简述 「使用逻辑回归暴力预测金融欺诈&#xff0c;并不断增加特征维度持续测试」的做法&#xff0c;体现了一种逐步建模与迭代验证的实验思路&#xff0c;在金融欺诈检测中非常有价值&#xff0c;本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...

HubSpot推出与ChatGPT的深度集成引发兴奋与担忧

上周三&#xff0c;HubSpot宣布已构建与ChatGPT的深度集成&#xff0c;这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋&#xff0c;但同时也存在一些关于数据安全的担忧。 许多网络声音声称&#xff0c;这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...

掌握 HTTP 请求:理解 cURL GET 语法

cURL 是一个强大的命令行工具&#xff0c;用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中&#xff0c;cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...

wpf在image控件上快速显示内存图像

wpf在image控件上快速显示内存图像https://www.cnblogs.com/haodafeng/p/10431387.html 如果你在寻找能够快速在image控件刷新大图像&#xff08;比如分辨率3000*3000的图像&#xff09;的办法&#xff0c;尤其是想把内存中的裸数据&#xff08;只有图像的数据&#xff0c;不包…...