紅邊和藍邊各自的圖塊將被一個影像替換(不是一個影像將它們全部重疊,而是將一個影像粘貼到每個圖塊上)。我不確定如何去做,任何幫助將不勝感激!

import pygame
TILESIZE = 22
margin = 1
BOARD_POS = (10, 10)
def create_board_surf():
board_surf = pygame.Surface((TILESIZE * 50 margin * 51, TILESIZE * 26 margin * 27))
board_surf.set_colorkey((0, 0, 0))
board_surf.set_alpha(210)
for row in range(26):
for column in range(0, 25):
color = (170, 70, 70)
rect = pygame.draw.rect(screen, color, [(margin TILESIZE) * column margin, (margin TILESIZE) * row margin, TILESIZE, TILESIZE])
pygame.draw.rect(board_surf, pygame.Color(color), rect)
for column in range(25, 50):
color = (70, 95, 195)
rect = pygame.draw.rect(screen, color, [(margin TILESIZE) * column margin, (margin TILESIZE) * row margin, TILESIZE, TILESIZE])
pygame.draw.rect(board_surf, pygame.Color(color), rect)
return board_surf
def create_board():
board = []
for row in range(26):
board.append([])
for column in range(50):
board[row].append(None)
return board
def main():
global screen
pygame.init()
screen = pygame.display.set_mode((1200, 650))
clock = pygame.time.Clock()
while True:
events = pygame.event.get()
for e in events:
if e.type == pygame.QUIT:
return
create_board()
board_surf = create_board_surf()
screen.fill(pygame.Color((200, 200, 200)))
screen.blit(board_surf, BOARD_POS)
pygame.display.flip()
clock.tick(60)
main()
uj5u.com熱心網友回復:
在def create_board_surf():為每個圖塊繪制矩形的位置下,將 替換為pygame.draw.rect以board_surf.blit(IMAGE_SURFACE, ((margin TILESIZE) * column margin, (margin TILESIZE) * row margin))將影像放置在圖塊矩形所在的位置。
您可以制作IMAGE_SURFACEbyimg = pygame.image.load("IMAGENAME.png")
這些影像必須縮放到圖塊大小,以便它們適合:
img = pygame.transform.scale(img, (TILESIZE, TILESIZE))
如果某些圖塊應該有不同的影像,您可以使用列和行位置來確定要使用的影像,就像某些圖塊是紅色的,而其他圖塊是藍色的基于它們的列一樣。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/481636.html
上一篇:反應:影像不顯示
