代码之家  ›  专栏  ›  技术社区  ›  Ishwari Katariya

Pymunk身体对象有问题

  •  2
  • Ishwari Katariya  · 技术社区  · 2 年前

    我正在使用此视频教程: Video

    我正在用pymunk制作一个球(目前质量为0),并试图在pygame上展示它,但它不起作用

    我试着在pymunk和pygame中做这个球,我期待着一个没有移动的球(我稍后会让它移动):

    import pymunk
    import pygame
    pygame.init()
    space=pymunk.Space()
    FPS=60
    clock = pygame.time.Clock()
    body = pymunk.Body()
    body.position = 400,400
    shape=pymunk.Circle(body,10)
    space.add(body,shape)
    (width, height) = (600, 400)
    display = pygame.display.set_mode((width, height))
    def main():
        while True:
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                  return
            display.fill((255,255,255))
            x,y=body.position
            pygame.draw.circle(display,(255,0,0),(int(x),int(y)),10)
            clock.tick(FPS)
            space.step(1/FPS)
    main()
    pygame.display.quit()
    pygame.quit()
    

    我弄错了,说这个位置是Vec2d(楠,楠) 然后,我运行了这个:

    print(body.position)
                                                             
    Output:Vec2d(nan, nan)
    
    body.position = 400, 400
                                                             
    print(body.position)
    
    Output:Vec2d(nan, nan)
    
    1 回复  |  直到 2 年前
        1
  •  2
  •   Rabbid76    2 年前

    创建实体时,必须指定不等于0的质量和力矩(请参见 pymunk.Body ):

    body = pymunk.Body()

    body = pymunk.Body(1, 1)
    

    此外 pygame.disaply.flip() 在绘制场景中的对象后丢失,如果身体应该摔倒,还必须指定重力(例如。 space.gravity = (0, 100) )

    推荐文章