Ai đó có thể cho tôi một số mã ví dụ tạo ra một bề mặt có nền trong suốt trong pygame không?Cách tạo bề mặt với nền trong suốt trong pygame
27
A
Trả lời
27
này nên làm điều đó:
image = pygame.Surface([640,480], pygame.SRCALPHA, 32)
image = image.convert_alpha()
Hãy chắc chắn rằng độ sâu màu (32) vẫn dứt khoát thiết lập khác điều này sẽ không làm việc.
9
Bạn cũng có thể cung cấp cho nó khóa màu, giống như tính minh bạch của tệp GIF. Đây là cách phổ biến nhất để tạo sprites. Bitmap gốc có tác phẩm nghệ thuật, và có một màu nhất định làm nền đó sẽ không được rút ra, đó là colorkey:
surf.set_colorkey((255,0,255)) // Sets the colorkey to that hideous purple
Bề mặt sử dụng colorkey thay vì alpha là nhanh hơn rất nhiều để blit kể từ khi họ làm không yêu cầu bất kỳ phép tính pha trộn nào. Bề mặt SDL sử dụng một bitmask đơn giản khi nó có một bộ colorkey, mà blits thực tế mà không cần overhead.