以下是问题所在:
我的pymunk代码来自https://pymunk-tutorial.readthedocs.io/en/latest/shape/shape.html
但是当我启动这个节目的时候,一个奇怪的力量出现在这个片段上。见结果:https://youtu.be/s4a0RLb6Y6k
请参阅代码:(没有关于依赖关系的无用部分)
import pymunk
import pymunk.pygame_util
import pygame
from pygame.locals import *
pygame.init()
width, height = 1280, 720
window = pygame.display.set_mode((width, height), FULLSCREEN)
draw_options = pymunk.pygame_util.DrawOptions(window)
window.fill((0,0,0))
run = True
space = pymunk.Space()
space.gravity = 0, -1000
b0 = space.static_body
sol = pymunk.Segment(b0, (0, 30), (width, 30), 10)
sol.elasticity = 1
body = pymunk.Body(mass=1, moment=1000)
body.position = (width/2, 50)
segment = pymunk.Segment(body, (width/2-20,50), (width/2+20,50), 1)
segment.elasticity = 0.95
space.add(sol, body, segment)
while run == True:
space.step(0.01)
window.fill((0,0,0))
pygame.draw.line(window, (0, 255, 0), (0, height-30), (width, height-30), 1)
space.debug_draw(draw_options)
pygame.display.flip()
pygame.time.Clock().tick(60)
for event in pygame.event.get():
if event.type == KEYDOWN:
if event.key == K_ESCAPE:
run = False
if event.type == QUIT:
run = False
mouse_x, mouse_y = pygame.mouse.get_pos()
pass
continue 我不知道问题出在哪里..。提前致谢
发布于 2020-05-12 12:06:45
视频中出现这种奇怪行为的一个常见原因是,形状的重心不在实际的中心。尝试更改,以便使段围绕其中心(0,0),即身体所在的位置。
就像这样也许
segment = pymunk.Segment(body, (-20,0), (20,0), 1)如果你想移动它,你可以调整身体的位置。
发布于 2020-05-12 16:19:21
因此,a,an,b值是相对于物体质心的。(a和b来自shape = pymunk.Segment(body, a, b, thickness) )
非常感谢!
https://stackoverflow.com/questions/61734843
复制相似问题