使用 PyGame 显示 PyMunk - Python

2023-12-05

我正在尝试学习 PyMunk,我使用了网站上的基本示例:

import pymunk

space = pymunk.Space()
space.gravity = 0,-1000

body = pymunk.Body(1,1666)
body.position = 50,100

poly = pymunk.Poly.create_box(body)
space.add(body, poly)

while True:
    space.step(0.02)

但它不创建窗口,也不显示任何内容。如何使用PyGame创建图形窗口?


该示例的作用是创建一个模拟,在其中添加一个盒形对象,然后无限地运行模拟。该代码不会打印或绘制任何内容,因此您实际上不会看到输出。为了更好地理解和屏幕上的内容,我建议您从教程开始:http://www.pymunk.org/en/latest/tutorials/SlideAndPinJoint.html

Pymunk 是一个二维刚体物理库,这意味着它所做的是模拟物体如何在二维中移动和相互作用。它不适用于在屏幕上绘图或读取输入。

您当然可以直接使用它,无需其他任何东西,只需打印出模拟结果即可。但更常见的是你想要在屏幕上绘制、读取输入等等。一种方法是使用游戏库 Pygame,它可以帮助绘制到屏幕、读取输入、进行游戏循环等。

Pymunk 本身确实有一些辅助函数,以便您可以轻松地将其与 Pygame(以及其他几个库)连接,但这不是核心部分。通常,当您想要一些快速的东西(例如原型)并且不需要自定义绘图时,这些辅助函数非常有用。

现在,这就是说,如果你想查看一些东西,你可以在 while 循环中添加一条 print 语句,所以它会变成这样:

while True:
    space.step(0.02)
    print(body.position)

然后它会打印出模拟的每一步球的位置,你可以看到它一直在变化(因为空间上设置的重力)。

Pymunk 中包含更高级的示例,它们既是交互式的,又可以在屏幕上显示一些内容。这些示例主要取决于 Pygame 或 Pyglet,但如果您想使用不同的库,原理是相同的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 PyGame 显示 PyMunk - Python 的相关文章

随机推荐

  • 编辑时,useState 在 CRUD 函数中重置为 initstate - React Star Component

    我正在尝试创建一个 CRUD 人员功能 其中每个人都拥有一系列技能 我想要一个功能 您可以在其中添加 编辑 删除特定人员的技能 每个数组由一个字符串形式的技能元素和一个整数形式的星号元素组成 我制作了一些动态输入字段 带有添加和删除功能 用
  • 如何访问CodeIgniter中的静态资源?

    我正在将 CodeIgniter 用于项目 文件夹结构 htdocs NewProject application 我创建了一个名为 Home 的控制器 applications controllers home php 我创建了一个视图
  • 线图中 x 轴标签居中

    我正在构建一个包含两条线的线图 一条用于高温 另一条用于低温 x 轴基于日期时间格式的一整年的天数 2014 01 01 等 然而 我在几个月内 一月 二月 三月等 更改了标签 而不是数据 问题是第一个标签 Jan 位于原点中 我想要的是将
  • Xcode 5 在创建新项目时崩溃

    我无法在 Xcode 5 中创建新项目 这适用于任何类型的项目 并且 IDE 在我点击时崩溃 没有任何错误消息Create填写项目信息后 点击新建项目按钮 我什至不知道从哪里开始寻找解决这个问题的方法 我想我上周创建了一个新项目 直到今天才
  • 如何在创建时拦截所有 Hibernate 会话(Spring / Grails 环境)

    有没有办法在创建新的 Hibernate 会话时拦截它们 我需要访问每个 Session 实例以启用带有参数的 Hibernate 过滤器 我得到的唯一解决方案涉及包装 SessionFactory 但这涉及到很多半令人讨厌的黑客行为 并且
  • 在 THREE.js 中,如何使纹理与分辨率无关并渲染而不会模糊?

    我试图将纹理应用于 THREE js 中的网格 但为了获得可接受的清晰度水平 我被迫使用比所需大得多的 PNG 尺寸高达数百像素平方 例如 如果我要使用一些简单的东西 例如八乘八的方格图案 那么最小的分辨率可能看起来像一堆点 用于纹理的代码
  • 段落标签未关闭?

    我将我的 html 代码简化为这样 div class index div p p h2 Who are we h2 wersfgse div 但是 当我运行它并打开页面源代码时 它显示 范围内没有 p 元素 但看到了 p 结束标记 它运行
  • 通过反射在 C# 中转换 System.__ComObject

    我正在尝试投射System ComObject使用反射到接口类型 我尝试过使用Convert ChangeType Object Type 但是 c 然后抛出这个错误 System InvalidCastException 对象 必须实现
  • VS2008一起调试ASP和ASP.net

    有没有什么方法可以从 Visual Studio 调试经典 ASP 和 ASP net 应用程序 以便我可以在 ASP 代码行和 ASP net 代码行上设置断点 这是针对具有较旧的经典 ASP 组件和较新的 ASP net 模块的遗留系统
  • 在jquery中使用多个id

    我制作了一个小 jquery 脚本来检查输入框值是否大于 5 但是我有 2 个带有 id 的标签 并且只有其中一个有效 div div
  • 根据类型打字稿创建对象

    免得说我有这种类型 type foo go string start string 如何动态创建一个将返回的函数 go start 在 Type Script 上 我们有什么方法可以仅基于类型动态生成空对象吗 或者这是不可能的 因为我们不能
  • 将单个 HTTP 标头的多个值添加到请求或响应的标准

    如果我想添加值列表作为 HTTP 标头 是否有标准方法可以做到这一点 我在 RFC 822 中找不到任何内容 我可以轻松理解 例如 是 逗号分隔值标准或分号分隔值 有标准吗 Example Key value1 value2 value3
  • C 中箭头运算符 (->) 的用法

    我正在读一本叫做 21 天自学 C 的书 我已经学会了 Java 和 C 所以我的学习速度要快得多 我正在阅读关于指针和 gt 箭 operator没有解释就出现了 我认为它用于调用成员和函数 就像相当于 点 运算符 但用于指针而不是成员
  • ASP.NET 中 APP_Data 文件夹的安全性

    我的 Microsoft Access DB 文件位于 APP DATA 文件夹中 我的服务器是 Windows 2003 我想知道保护此文件的最佳方法是什么 那么哪一种更安全呢 wwwroot App data 数据库 mdb or db
  • crti.o 文件丢失

    我正在使用 GNU 工具链构建一个项目 一切正常 直到我开始链接它 链接器抱怨它丢失 找不到crti o 这不是我的目标文件之一 它似乎与 libc 有关 但我不明白为什么它需要这个crti o 它不会使用库文件吗 例如libc a 我正在
  • 获取 GitHub 存储库的本地副本、跟踪更改并将更新推送回远程

    我在 GitHub 上有一个存储库 我想用对从中提取它的文件夹所做的更改来更新它 Git 新用户从使用的那一刻起就应该执行哪些步骤 不用行话或简写术语 cd directory 包括如何跟踪对任何文件所做的本地更改 以及如何将这些更改和更新
  • 一个框架。滚轮滚动放大

    我已经浏览了官方文档 但无法找到有关放大 缩小可能性的信息panorama图像 A 框架是否支持它 或者可能有一个解决方法可以阅读有关实现某些three js在它的上面 这可能是 2018 年更清洁的方式 我将 Aframe 相机的变焦限制
  • Laravel - 在标头中发送 api_token

    我正在为 Laravel 构建一个 API 我想在标头中发送 api token 而不是表单帖子 这是已经内置的东西还是我必须弄清楚如何创建自己的身份验证驱动程序 经过我自己的努力 我终于成功了 您需要首先遵循这个小教程 了解如何在 Lar
  • 从 Swift 访问 Azure 表存储

    我想从 Swift 访问 azure 表存储 制作标题的指令是here但是 我尝试构建请求但无法使其工作 let urlString https
  • 使用 PyGame 显示 PyMunk - Python

    我正在尝试学习 PyMunk 我使用了网站上的基本示例 import pymunk space pymunk Space space gravity 0 1000 body pymunk Body 1 1666 body position