0

「ball.gif」はこのように画面を回転させたいです。

--->            -->
                   |
^                  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()

しかし問題がある。1回のツアーの後、ボールは永遠に右に行きます。下がりませんか?私が見逃したもの、助けてください。

4

1 に答える 1

1

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ここにいくつか置くことを検討する必要があります。

于 2013-07-23T15:44:40.293 に答える