首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python PyMunk的行为很奇怪

Python PyMunk的行为很奇怪
EN

Stack Overflow用户
提问于 2020-05-11 16:44:08
回答 2查看 112关注 0票数 2

以下是问题所在:

我的pymunk代码来自https://pymunk-tutorial.readthedocs.io/en/latest/shape/shape.html

但是当我启动这个节目的时候,一个奇怪的力量出现在这个片段上。见结果:https://youtu.be/s4a0RLb6Y6k

请参阅代码:(没有关于依赖关系的无用部分)

代码语言:javascript
复制
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 

我不知道问题出在哪里..。提前致谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-12 12:06:45

视频中出现这种奇怪行为的一个常见原因是,形状的重心不在实际的中心。尝试更改,以便使段围绕其中心(0,0),即身体所在的位置。

就像这样也许

代码语言:javascript
复制
segment = pymunk.Segment(body, (-20,0), (20,0), 1)

如果你想移动它,你可以调整身体的位置。

票数 1
EN

Stack Overflow用户

发布于 2020-05-12 16:19:21

因此,a,an,b值是相对于物体质心的。(a和b来自shape = pymunk.Segment(body, a, b, thickness) )

非常感谢!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61734843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档