当前位置: 代码迷 >> python >> 如何将rect及其关联的图形(Pygame)一起移动?
  详细解决方案

如何将rect及其关联的图形(Pygame)一起移动?

热度:118   发布时间:2023-07-16 11:26:26.0

最小的工作示例:

x = pygame.draw.circle(screen, color, (x, y), radius, width)
x.center = (my_wanted_center_x, my_wanted_center_y)

然后,在更新显示之后,它总是显示在其原始位置。 也尝试过其他数字。 x.move()不起作用。 如何以最简单的方式移动任何绘制的图形?

您可以使用来存储对象的位置,在while循环中更新rect的属性(例如.x.center ),然后在rect.center位置绘制圆或图像/表面。

import pygame as pg

pg.init()

screen = pg.display.set_mode((640, 480))
clock = pg.time.Clock()
BG_COLOR = pg.Color('gray12')
SIENNA = pg.Color('sienna1')
radius = 20
# This rect serves as the position of the circle and
# can be used for collision detection.
rect = pg.Rect(50, 200, radius, radius)

done = False
while not done:
    for event in pg.event.get():
        if event.type == pg.QUIT:
            done = True

    rect.x += 1  # Update the position of the rect.

    screen.fill(BG_COLOR)
    # Now draw the circle at the center of the rect.
    pg.draw.circle(screen, SIENNA, rect.center, radius)
    pg.display.flip()
    clock.tick(30)

pg.quit()