Pygame图像屏幕填充

时间:2013-08-05 20:34:38

标签: python pygame

我有一个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个像素行。代码有什么问题?感谢。

2 个答案:

答案 0 :(得分:1)

当您沿着屏幕下移时,y轴是正的 - 所以当您的第一行位于0位置时,下一行将位于y位置100.基本上,您应该添加到y坐标,而不是减去。

答案 1 :(得分:1)

你最好不要使用for循环而不是while循环来做到这一点。

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

使代码更易读,更容易调试。 但是在回答你的问题时,如frr171所说,原点(0,0)位于屏幕的左上角角落。当你向右移动时,x轴会增加,当你走向下时,y轴会增加。

enter image description here