pygame 图片背景与主背景不匹配
pygame image background does not match main background
我有一张透明背景的图片。当我将图像 blit 到我的游戏背景时,透明背景出现在屏幕上(见下图)
这是我的代码:
import sys
import pygame
def runGame():
""" Function for running pygame """
pygame.init()
screen = pygame.display.set_mode((1200, 800))
pygame.display.set_caption("Car Simulator")
image = pygame.image.load('./car1.bmp').convert()
bg_color = (230,230,230)
# Start main loop for the game
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
screen.blit(image, (50,100))
pygame.display.flip()
runGame()
起初我以为是因为我没有使用convert()
方法。但是我仍然有同样的问题。关于如何使图像背景与屏幕背景相匹配的任何想法。任何帮助,将不胜感激。谢谢。
如果背景颜色是统一的,那么可以通过pygame.Surface.set_colorkey
设置透明色键。例如,如果背景是白色 (255, 255, 255):
image = pygame.image.load('./car1.bmp').convert()
image.set_colorkey((255, 255, 255))
无论如何,如果背景有多种颜色,这将无法解决问题。
我建议使用支持每像素 alpha 的图像格式。例如 PNG (Portable Network Graphics):
image = pygame.image.load('./car1.png').convert_alpha()
另见
我有一张透明背景的图片。当我将图像 blit 到我的游戏背景时,透明背景出现在屏幕上(见下图)
这是我的代码:
import sys
import pygame
def runGame():
""" Function for running pygame """
pygame.init()
screen = pygame.display.set_mode((1200, 800))
pygame.display.set_caption("Car Simulator")
image = pygame.image.load('./car1.bmp').convert()
bg_color = (230,230,230)
# Start main loop for the game
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
screen.blit(image, (50,100))
pygame.display.flip()
runGame()
起初我以为是因为我没有使用convert()
方法。但是我仍然有同样的问题。关于如何使图像背景与屏幕背景相匹配的任何想法。任何帮助,将不胜感激。谢谢。
如果背景颜色是统一的,那么可以通过pygame.Surface.set_colorkey
设置透明色键。例如,如果背景是白色 (255, 255, 255):
image = pygame.image.load('./car1.bmp').convert()
image.set_colorkey((255, 255, 255))
无论如何,如果背景有多种颜色,这将无法解决问题。
我建议使用支持每像素 alpha 的图像格式。例如 PNG (Portable Network Graphics):
image = pygame.image.load('./car1.png').convert_alpha()
另见