我從pygame的教程此程序:pygame的簡單彈跳動畫
1 import sys, pygame
2 pygame.init()
3
4 size = width, height = 320, 240
5 speed = [2, 2]
6 black = 0, 0, 0
7
8 screen = pygame.display.set_mode(size)
9
10 ball = pygame.image.load("ball.bmp")
11 ballrect = ball.get_rect()
12
13 while 1:
14 for event in pygame.event.get():
15 if event.type == pygame.QUIT: sys.exit()
16
17 ballrect = ballrect.move(speed)
18 if ballrect.left < 0 or ballrect.right > width:
19 speed[0] = -speed[0]
20 if ballrect.top < 0 or ballrect.bottom > height:
21 speed[1] = -speed[1]
22
23 screen.fill(black)
24 screen.blit(ball, ballrect)
25 pygame.display.flip()
這是一個簡單的反彈球。我想要的是用一個將用pygame繪製的圓來代替ball(ball.gif),而不對代碼做大的修改。我的意思是,我想要改變的唯一事情就是用一個圓圈代替它,並用我用來製作動畫的相同代碼對該圓圈進行動畫處理。有什麼辦法可以做到嗎?謝謝。
但是,如果我這樣做,這意味着它使用圖像的矩形區域。並且,例如,如果圓直徑小於或大於矩形「球形」的長度,則圓形在到達屏幕邊緣時不會彈起。爲了做到這一點,我將不得不使用與圓相同大小的圖像......是否有一種方法可以只使用圓而不必使用圖像? – Joker
如果你用pygame.draw繪製,那麼是的,如果你想使用rect進行碰撞,你的矩形尺寸需要匹配圓的大小。但是,不,你不需要一個圖像。爲了消除對矩形的需求,您需要重新編寫碰撞檢測來檢查諸如圓形平面相交之類的事情。 – kevintodisco