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