如何将矩形与其关联的图形一起移动 (Pygame)?
How to move a rect together with its associated drawing (Pygame)?
最小工作示例:
x = pygame.draw.circle(screen, color, (x, y), radius, width)
x.center = (my_wanted_center_x, my_wanted_center_y)
更新显示后,它始终显示在其原始位置。也尝试过其他数字。 x.move()
也不起作用。如何以最简单的方式移动绘制的图形?
您可以使用 pygame.Rect
来存储对象的位置,在 while 循环中更新矩形的属性(例如 .x
或 .center
),然后绘制圆圈或 image/surface 在 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()
最小工作示例:
x = pygame.draw.circle(screen, color, (x, y), radius, width)
x.center = (my_wanted_center_x, my_wanted_center_y)
更新显示后,它始终显示在其原始位置。也尝试过其他数字。 x.move()
也不起作用。如何以最简单的方式移动绘制的图形?
您可以使用 pygame.Rect
来存储对象的位置,在 while 循环中更新矩形的属性(例如 .x
或 .center
),然后绘制圆圈或 image/surface 在 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()