我正在尝试在 pygame 中制作乒乓球游戏,但我不知道如何制作一个球圈,我可以使用 pygame.draw.circle 创建一个球圈到 pygame.Rect 对象中,这样我就可以使用 colliderect 函数并操纵球的位置。 例如,对于矩形,我可以做这样的事情:
rect = pygame.Rect(255, 255, 100, 100)
pygame.draw.rect(screen, yellow, rect)
然后当我更改 pygame.Rect 对象位置时,绘图基元位置也会更改。当我想画一个圆形而不是一个矩形时,如何才能达到相同的效果? 谢谢你。
http://pygame.org/docs/ref/draw.html#pygame.draw.circle
”
pygame.draw.circle
围绕一个点画一个圆
pygame.draw.circle(Surface, color, pos, radius, width=0): return Rect
”
如果你这样做:
circleRect = pygame.draw.circle(windowSurface, (0,0,0), (10, 10), 5)
Pygame 会给你圆所在的矩形,你可以操纵它。
希望对您有所帮助,祝您好运。
一些非常酷的东西- pygame.draw.rect(屏幕, "红色", pygame.Rect(100, 100, 100, 100),100, 100) 这会画一个圆圈(无上限)
这可能对您有帮助:
import pygame
pygame.init()
# variables
SW, SH = 600, 600
screen = pygame.display.set_mode((SW, SH))
clock = pygame.time.Clock()
fullscreen = False
running = True
# forever loop
while running:
# running loop quit
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_p:
if not fullscreen:
screen = pygame.display.set_mode((0, 0), pygame.FULLSCREEN)
fullscreen = True
else:
screen = pygame.display.set_mode((SW, SH))
fullscreen = False
# escape/out
if event.key == pygame.K_ESCAPE:
pygame.quit()
exit()
place = SW/2, SH/2
size = 100
mx, my = pygame.mouse.get_pos() # mouse pos
rectsur = pygame.Surface((size * 1.7, size * 1.7)) # get surface for rect
pr = rectsur.get_rect(center=place) # get rect
pygame.draw.rect(screen, 'black', ((0, 0), (SW, SH)))
# just here...
if pr.collidepoint(mx, my):
pygame.draw.circle(screen, 'white', place, size+5)
pygame.draw.circle(screen, 'blue', place, size) # draw the circle on top
SW, SH = (screen.get_width(), screen.get_height())
pygame.display.update()
clock.tick(60)
# fps cap (60)
pygame.quit()