旋转点后,Pygame线消失

时间:2015-06-18 22:16:52

标签: python rotation pygame

我是python的新手并试图用旋转的船进行游戏。然而,旋转后,船只消失了。我打印了三个点的坐标,应该出现在屏幕上。有人知道我的代码有什么问题吗?

这是旋转船只的代码:

radius = self.width / 2
self.angle += da
center = [self.pos[0] + radius, self.pos[1] + radius]

for point in self.points:
    dx = int(math.cos(self.angle) * radius)
    dy = int(math.sin(self.angle) * radius)
    point[0] = center[0] + dx
    point[1] = center[1] + dy

这是绘制屏幕的代码:

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

    keys = pygame.key.get_pressed()
    if keys[pygame.K_UP]:
        self.ship.move(self)
    if keys[pygame.K_RIGHT]:
        self.ship.rotate(0.08)
    if keys[pygame.K_LEFT]:
        self.ship.rotate(-0.08)

    self.display.fill(self.bgcolor)
    self.ship.draw(self.display)

    pygame.display.update()
    self.fpsclock.tick(self.fps)

1 个答案:

答案 0 :(得分:0)

看看这段代码:

for point in self.points:
    dx = int(math.cos(self.angle) * radius)
    dy = int(math.sin(self.angle) * radius)
    point[0] = center[0] + dx
    point[1] = center[1] + dy

请注意,您没有使用任何点,只需设置它即可。假设self.points是组成船舶的点的列表,我认为只要碰到这个代码,你的船就会折叠成一个点。