如何解决Pygame 和 Pymunk Programm 加载一些后屏,然后关闭
我关注本教程 https://www.youtube.com/watch?v=nNjRz31-7s0&t=181s 是因为我想学习 pymunk,但后来出现了标题中描述的问题。我已经尝试重新启动 IDLE 并在线搜索解决方案,但很难找到一些东西,因为我没有收到错误消息。你能看出错误是什么吗?
import pygame
import pymunk
pygame.init()
display= pygame.display.set_mode((400,400))
clock= pygame.time.Clock()
space=pymunk.Space()
space.gravity = 0,-1000
FPS=80
def convert_coordinates(point):
return point[0],400-point[1]
body = pymunk.Body()
body.position= 200,300
shape = pymunk.Circle(body,10)
shape.density= 1
shape.elasticity=1
space.add(body,shape)
segment_body = pymunk.Body(body_type=pymunk.Body.STATIC)
segment_shape= pymunk.Segment(segment_body,(0,25),(400,5)
segment_shape.elasticity=1
space.add(segment_shape)
def game():
global segment_body,segment_shape
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
return
display.fill((255,255,255))
x,y = convert_coordinates(body.position)
pygame.draw.circle(display,(255,0),(int(x),int(y)),5)
#pygame.draw.line(display,275),200),5)
pygame.display.update()
clock.tick(FPS)
space.step(1/FPS)
game()
pygame.quit()
感谢您的帮助!
解决方法
我收到一条错误消息:
Aborting due to Chipmunk error: The shape's body must be added to the space before the shape.
Failed condition: shape->body->space == space
Source:Chipmunk2D\src\cpSpace.c:423
(注意 pymunk
是一个糟糕的库,不会抛出 python 异常 >:-( )。
space.add(segment_shape)
应该是 space.add(segment_body,segment_shape)
我建议不要在这里使用 IDLE,因为它似乎没有正确重定向来自 pymunk
的错误消息。使用终端来执行脚本(或者更好,更大规模的 IDE,如 Spyder 或 PyCharm)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。