我在《皮格游戏》和《皮芒克》中做了一个简单的测试场景,它只是在一条线上掉了一个布球,每次发生碰撞时我都想把它长出来.
import pygame, sys, pymunk
pygame.init()
screen = pygame.display.set_mode((800, 800))
clock = pygame.time.Clock()
space = pymunk.Space()
space.gravity = (0, 500)
#Varibales
CircleRadius = 10
# create ball
BallBody = pymunk.Body(1, 100, body_type=pymunk.Body.DYNAMIC)
BallBody.position = 400, 400
BallShape = pymunk.Circle(BallBody, CircleRadius)
BallShape.elasticity = 0.9
BallShape.collision_type = 1
space.add(BallBody, BallShape)
# Create Container
SegmentBody = pymunk.Body(body_type=pymunk.Body.STATIC)
SegmentShape = pymunk.Segment(SegmentBody, (200, 600), (600, 600), 10)
SegmentShape.elasticity = 1
SegmentShape.collision_type = 2
space.add(SegmentBody, SegmentShape)
#handle collisions
def Collision(arbiter, space, data):
print("Collision")
global CircleRadius
CircleRadius += 2
handler = space.add_collision_handler(1, 2)
handler.separate = Collision
#main game loop
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
screen.fill((0, 0, 0))
#draw bodys in pygame
Bx, By = BallBody.position
pygame.draw.circle(screen, (255, 0, 0), (int(Bx), int(By)), CircleRadius)
Sx, Sy = SegmentBody.position
pygame.draw.line(screen, (255, 0, 0), (200, 600), (600, 600), 10)
space.step(1 / 50)
pygame.display.update()
clock.tick(120)
问题是,每次发生碰撞时,皮格勃的视觉都会增长,但实际的皮芒克身体却不会增长.
我试过使用ChatGPT,但没有任何效果,我在网上也找不到任何答案.