1

pygame ウィンドウを Grass.png で埋めるための pygame プログラムがあります。

import pygame, sys
from pygame.locals import *

pygame.init()

screen = pygame.display.set_mode([600, 500])

def DrawBackground(background, xpos, ypos):
    screen.blit(background, [xpos, ypos])

background = pygame.image.load('Grass.png')
xpos = 0
ypos = 0

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
    while ypos >= -500:
        while xpos <= 600:
            DrawBackground(background, xpos, ypos)
            xpos += 100
        ypos -= 100

    pygame.display.flip()

唯一の問題は、最初の 100 ピクセル行のみを画像で埋めることです。コードの何が問題になっていますか? ありがとう。

4

2 に答える 2

1

画面を下に行くほど、y 軸は正になります。つまり、最初の行の y 位置が 0 の場合、次の行の y 位置は 100 になります。基本的に、y 軸に加算する必要があります。座標、減算ではありません。

于 2013-08-05T20:47:07.150 に答える
1

これを行うには、while ループよりも for ループを使用する方がはるかに優れています。

for y in range(5):
    for x in range(6):
        DrawBackground(background, x*100, y*100)

コードをより読みやすく、デバッグしやすくします。しかし、あなたの質問に答えて、frr171 が言ったように、原点 (0, 0) は画面の左上隅にあります。右に行くほど x 軸が増加し、に行くほど y 軸が増加します。

ここに画像の説明を入力

于 2013-08-06T04:12:12.767 に答える