为什么重力在 Pymunk 中不起作用?
Why is the gravity not working in Pymunk?
我想学习 pymunk,但由于某种原因,引力不起作用。我看了很多教程,甚至逐字逐句地学习,但我的重力始终不起作用。这是我在主游戏中使用的代码,我在这里坐了几个小时思考可能出了什么问题,但我仍然找不到它。
factory_items=[]
space=pymunk.Space()
space.gravity=(0,100)
class factory_item():
def __init__(self):
self.image=apple
self.image=pygame.transform.scale(self.image,(100,100))
self.body=pymunk.Body(1,100,body_type=pymunk.Body.DYNAMIC)
self.body.pos=(random.randrange(0,401),0)
self.shape=pymunk.Circle(self.body,50)
space.add(self.body,self.shape)
def update(self):
win.blit(self.image,(self.body.pos[0]+scrollx,self.body.pos[1]))
正在生成苹果,但没有掉下来。
if timer>0.5:
timer=0
var=factory_item()
factory_items.append(var)
for i in factory_items:
i.update()
space.step(1/50)
您似乎使用了错误的 属性 到 set/get 身体位置。 Pymunk Body 的位置 属性 称为 position
。您可以在此处查看该职位(以及 Pymunk 中的所有其他内容)的完整 API 文档:http://www.pymunk.org/en/latest/pymunk.html#pymunk.Body.position
因此,尝试按以下方式更改您的代码:
self.body.pos=(random.randrange(0,401),0)
# should be
self.body.position=(random.randrange(0,401),0)
# and
win.blit(self.image,(self.body.pos[0]+scrollx,self.body.pos[1]))
# should be
win.blit(self.image,(self.body.position[0]+scrollx,self.body.position[1]))
如果它仍然不起作用,你可以尝试 post 你的完整代码(最好是我们可以 运行,但同时不要太长)在你的问题中,比如 import random写在评论里。
我想学习 pymunk,但由于某种原因,引力不起作用。我看了很多教程,甚至逐字逐句地学习,但我的重力始终不起作用。这是我在主游戏中使用的代码,我在这里坐了几个小时思考可能出了什么问题,但我仍然找不到它。
factory_items=[]
space=pymunk.Space()
space.gravity=(0,100)
class factory_item():
def __init__(self):
self.image=apple
self.image=pygame.transform.scale(self.image,(100,100))
self.body=pymunk.Body(1,100,body_type=pymunk.Body.DYNAMIC)
self.body.pos=(random.randrange(0,401),0)
self.shape=pymunk.Circle(self.body,50)
space.add(self.body,self.shape)
def update(self):
win.blit(self.image,(self.body.pos[0]+scrollx,self.body.pos[1]))
正在生成苹果,但没有掉下来。
if timer>0.5:
timer=0
var=factory_item()
factory_items.append(var)
for i in factory_items:
i.update()
space.step(1/50)
您似乎使用了错误的 属性 到 set/get 身体位置。 Pymunk Body 的位置 属性 称为 position
。您可以在此处查看该职位(以及 Pymunk 中的所有其他内容)的完整 API 文档:http://www.pymunk.org/en/latest/pymunk.html#pymunk.Body.position
因此,尝试按以下方式更改您的代码:
self.body.pos=(random.randrange(0,401),0)
# should be
self.body.position=(random.randrange(0,401),0)
# and
win.blit(self.image,(self.body.pos[0]+scrollx,self.body.pos[1]))
# should be
win.blit(self.image,(self.body.position[0]+scrollx,self.body.position[1]))
如果它仍然不起作用,你可以尝试 post 你的完整代码(最好是我们可以 运行,但同时不要太长)在你的问题中,比如 import random写在评论里。