2012-01-07 2 views
1

Что я хочу сделать, это иметь (0,390), (0,450), (610,390), (610,450) - покрытый изображением плитки, называемым (brick_tile). до сих пор все у меня есть это:Как вы покрываете область в плитки (изображения) в python/pygame?

import pygame 
from pygame.locals import* 

cloud_background = pygame.image.load('clouds.bmp') 
brick_tile = pygame.image.load('brick_tile.png') 

pink = (255, 64, 64) 
w = 640 
h = 480 
screen = pygame.display.set_mode((w, h)) 
running = 1 

while running: 
    screen.fill((pink)) 
    screen.blit(cloud_background,(0,0)) 
    screen.blit(brick_tile,(0,450)) 
    pygame.display.flip() 

    event = pygame.event.poll() 
    if event.type == pygame.QUIT: sys.exit() 

ответ

2

Для плитки с кирпичами вы просто должны блитирования, Blit, Blit в цикле:

import pygame 
import sys 
import itertools 

cloud_background = pygame.image.load('clouds.bmp') 
brick_tile = pygame.image.load('brick_tile.png') 

pink = (255, 64, 64) 
w = 640 
h = 480 
screen = pygame.display.set_mode((w, h)) 
running = 1 

def setup_background(): 
    screen.fill((pink)) 
    screen.blit(cloud_background,(0,0)) 
    brick_width, brick_height = brick_tile.get_width(), brick_tile.get_height() 
    for x,y in itertools.product(range(0,610+1,brick_width), 
           range(390,450+1,brick_height)): 
     # print(x,y) 
     screen.blit(brick_tile, (x, y)) 
    pygame.display.flip() 

while running: 
    setup_background()  
    event = pygame.event.poll() 
    if event.type == pygame.QUIT: sys.exit() 
+0

OK Я добавил, что к концу программы. и кирпичи не появляются – enrique2334

+0

Вам нужно вызвать функцию: 'setup_background()'. Я редактировал код, чтобы показать, что я имею в виду. – unutbu

+0

'Traceback (самый последний вызов последнего): Файл "C: \ Users \ Enrique \ Dropbox \ GAMEZ_PYGAME \ gamez.py", строка 14, в setup_background() NameError: имя 'setup_background' не defined' – enrique2334