[英]How to remove black background from sprite in sprite sheet in pygame
我正在嘗試從這張精靈圖片中刪除這張精靈的黑色背景。 正如您將在以下代碼中看到的和這篇文章所建議的那樣( 透明的spritesheet具有黑色背景 ),我嘗試使用pygame.SRCALPHA標志,但這似乎不起作用。 在使用透明背景進行轉換后,我什至嘗試使用相同的精靈表,並且在Mario精靈周圍得到相同的黑色邊框。
import pygame
pygame.init()
def imgcolorkey(image, colorkey):
if colorkey is not None:
if colorkey is -1:
colorkey = image.get_at((0, 0))
image.set_colorkey(colorkey, RLEACCEL)
return image
class SpriteSheet(object):
sprite_sheet = None
def __init__(self, file_name):
#self.sprite_sheet = pygame.image.load(file_name).convert()
self.sprite_sheet = pygame.image.load(file_name,pygame.SRCALPHA)
#self.sheet = load_image(filename)
def imgat(self, rect, colorkey = None):
rect = pygame.Rect(rect)
#image = pygame.Surface(rect.size).convert()
#image = pygame.Surface(rect.size, pygame.SRCALPHA ).convert()
image = pygame.Surface(rect.size, pygame.SRCALPHA)
#image.fill(transColor)
image.blit(self.sprite_sheet, (0, 0), rect)
return imgcolorkey(image, colorkey)
def imgsat(self, rects, colorkey = None):
imgs = []
for rect in rects:
imgs.append(self.imgat(rect, colorkey))
return imgs
找到了問題。
在主類中構建圖像時,我沒有發送-1的colorkey參數。
我變了:
mario_image = SPRITE_SHEET.imgsat(MARIO_COORD)
至:
images = SPRITE_SHEET.imgsat(MARIO_COORD,-1)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.