- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我使用此代码的目的是使用 pygame 演示落在 pymunk 中的矩形。
import pymunk
import pygame
pygame.init()
screen = pygame.display.set_mode((1280, 720))
space = pymunk.Space()
space.gravity = (0, -1000)
mass = 1
chassis_shape = pymunk.Poly.create_box(None, size=(100, 100))
chassis_moment = pymunk.moment_for_poly(mass, chassis_shape.get_vertices())
chassis = pymunk.Body(mass, chassis_moment)
chassis_shape.body = chassis
chassis.position = 250, 100
space.add(chassis_shape, chassis)
def draw_poly(shape):
pygame.draw.polygon(screen, [255, 255, 255], shape.get_vertices())
while True:
screen.fill([0, 0, 0])
draw_poly(chassis_shape)
print(chassis_shape.get_vertices(), chassis.position)
space.step(0.02)
pygame.display.update()
当我运行这个程序时, body 对象移动得很好,但是形状的顶点保持静止。我将如何修改它以使显示窗口的对象完全移动?其他问题遗漏了诸如 pymunk 步骤之类的内容,或者与其他问题无关。
最佳答案
问题是 get_vertices()
返回本地坐标。您需要手动考虑旋转和全局位移,如下所示
def draw_poly(shape):
verts = []
for v in shape.get_vertices():
x = v.rotated(shape.body.angle)[0] + shape.body.position[0]
y = v.rotated(shape.body.angle)[1] + shape.body.position[1]
verts.append((x, y))
pygame.draw.polygon(screen, [255, 255, 255], verts)
关于python - Pymunk Body 移动而不移动 pymunk 形状顶点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51747985/
我使用此代码的目的是使用 pygame 演示落在 pymunk 中的矩形。 import pymunk import pygame pygame.init() screen = pygame.disp
我试图找到一些方法来迭代依赖于 pymunk 中特定主体的约束。在 Chipmunk 中似乎有多种方法可以做到这一点,但我在 pymunk 中找不到等效的方法。我希望看到一些检测约束的方法,这样我就不
我正在使用 pymunk 制作一个 pong 克隆,以了解该库的工作原理。我让球正确地从墙上弹起,但 Racket 仍然拒绝停留在由段定义的矩形内,在屏幕的每一侧都有一个。 def handle_in
我正在尝试检测从玩家位置开始的线段上的第一个形状,但我不想检测玩家。 在以前版本的 pymunk 中,pymunk.Space.segment_query_first 函数接受一个整数作为 shape
pymunk 文档写道,场景的重力“默认为 (0,0)。可以通过编写自定义集成函数在每个主体的基础上进行覆盖。”您将如何编写自定义集成函数来更改对象的重力(例如,如果梯子上有一个对象,我希望其重力为
对项目进行一些模拟。 我的问题是物体的阻尼值是否与 pymunk 空间的阻尼值复合(如果有的话)? 例如,如果我有一个 pymunk 空间 SPACE,其中 SPACE.damping = 0.9,然
我想创建一个弹球游戏,但球有时不会与其他物体碰撞。示例:https://youtu.be/HwSXwJ4-d2w 这是代码 import pyglet, pymunk from pymunk.pygl
我正在尝试使用 pymunk 和 pyglet 创建形状。但是我面临一个问题,我无法更改 pymunk 形状的颜色。他们没有任何这样的属性。 我已经在 pymunk.pyglet_utils.Draw
在 Pymunk 中,您可以设置重力以使对象向左或向右 (x) 和向上或向下移动。 (y) 我想改变重力,使物体聚集在中心,有点像质心。有没有可能的方法来做到这一点? 最佳答案 没有内置的方法来“移动
最近我一直在尝试用 pymunk 制作一个简单的游戏。我的目标(目前)是让盒子受到重力影响,并在调用 up() 函数时“跳跃”。 这是我的代码。 import pygame from pygame.l
我正在尝试在 pymunk 中设置运动体的速度,但我真的不知道我需要输入什么或什么值,如果有人可以向我解释它,我会非常高兴。 这就是我所做的 - part_body = pymunk.Body(1,
我的问题相当简单:有没有一种方法或解决方法可以在 pymunk 中实现静态和动态摩擦? 我理解这个问题很困难,但相信有人可以在 pymunk 中解决这个问题。 谢谢! 最佳答案 您可以操纵将在 pre
我想实现一个代码,它具有与碰撞对象的非碰撞对。我的对是 2 个相互连接的球。我希望那些 2 对球发生碰撞。但是我不希望这两个球与其他对碰撞。 如何在 pymunk ShapeFilter 中实现包含这
这个简单的 pymunk 代码给我带来了问题: space = pm.Space() b = pm.Body() b.position = 400,400 c = pm.Circle(b,10) sp
为什么以下 Pymunk 示例中的物理错误? from __future__ import print_function import sys from math import pi import p
我正在尝试实现一个人工智能来解决一个简单的任务:从 A 移动到 B,同时避开障碍物。 到目前为止,我使用 pymunk 和 pygame 来构建环境,效果非常好。但现在我面临下一步:为了获得强化学习算
使用 python 2.7 尝试以下代码。基本上它是一个卡在一根杆子上的圆圈和一个苹果,你可以通过按空格键来击中它。还有一个正方形。 import time import pygame import
我有一个圆圈,上面有一个框: 圆圈是一个简单的马达。我希望盒子直接位于圆圈上方。我尝试过不同的约束,但我的大部分尝试都会导致盒子翻到一边。 我最成功的尝试是将盒子的 body.moment 设置为 p
我正在尝试创建一个带有振荡弦和质量的钟摆,预计会振荡一段时间然后停止。从我写的来看,质量无法停止振荡。请帮助我。 import pyglet import pymunk imp
我正在使用 pymunk 和 pygame 开发一个项目。我正在使用 PivotJoint 约束将我的 body 连接在一起。如果可能的话,我想让关节不可见 - 有什么办法可以做到这一点吗?现在关节在
我是一名优秀的程序员,十分优秀!