我希望“ball.giff”像这样转过来。
---> -->
|
^ v
|
|
^ v
| <-- <- -
和我的代码:
import sys
import pygame
size = width, height = 600, 600
screen = pygame.display.set_mode(size)
pygame.display.set_caption("wedding")
brade = pygame.image.load("ball.gif")
brade_rect = brade.get_rect()
speed = [10, 0]
black = 0, 0, 0
while True:
for event in pygame.event.get():
if event.type==pygame.QUIT:
pygame.quit()
sys.exit()
brade_rect.move_ip(speed)
if brade_rect.right>width:
speed = [0,10]
if brade_rect.bottom>height:
speed = [-10, 0]
if brade_rect.left<0:
speed = [0, -10]
if brade_rect.top<0:
speed = [10, 0]
pygame.time.delay(100)
screen.fill(black)
screen.blit(brade, brade_rect)
pygame.display.flip()
但是有问题。经过一次巡回赛,球永远向右走。它没有下降? 我错过了,你能帮忙吗?
答案 0 :(得分:1)
在第一个回合结束时,brad_rect.top
变为-10
。您将速度更改为[10, 0]
,但将brad_rect.top
保持为-10
,因此最后一个仍然可以激活并删除任何速度。你应该在窗口中放回brade_rect
:
if brade_rect.right>width:
speed = [0,10]
brade_rect.right=width
if brade_rect.bottom>height:
speed = [-10, 0]
brade_rect.bottom=height
if brade_rect.left<0:
speed = [0, -10]
brade_rect.left=0
if brade_rect.top<0:
speed = [10, 0]
brade_rect.top=0
顺便说一下,你应该考虑在这里放一些else
。