我今天刚开始使用pygame,遇到了一些麻烦。我旋转了汽车图像,但似乎矩形区域不能完美地适应图像(如图所示,白色区域比我旋转的图像大)。
你可以让矩形区域的颜色透明或与背景相同,以使图像看起来更好吗?
由于
您好, 这是我关注的代码(来自Richard Jones的'Python中的快速游戏开发'):
class CarSprite(pygame.sprite.Sprite):
MAX_FORWARD_SPEED = 10
MAX_REVERSE_SPEED = 10
ACCELERATION = 2
TURN_SPEED = 5
def __init__(self, image, position):
pygame.sprite.Sprite.__init__(self)
self.src_image = pygame.image.load(image)
self.src_image = self.src_image.convert()
self.position = position
self.speed = self.direction = 0
self.k_left = self.k_right = self.k_down = self.k_up = 0
self.rect = self.src_image.get_rect()
self.rect.center = position
def update(self, deltat):
# SIMULATION
self.speed += (self.k_up + self.k_down)
if self.speed > self.MAX_FORWARD_SPEED:
self.speed = self.MAX_FORWARD_SPEED
if self.speed <-self.MAX_REVERSE_SPEED:
self.speed = -self.MAX_REVERSE_SPEED
self.direction += (self.k_right + self.k_left)
x, y = self.position
rad = self.direction * math.pi / 180
x += -self.speed*math.sin(rad)
y += -self.speed*math.cos(rad)
self.position = (x, y)
self.image = pygame.transform.rotate(self.src_image, self.direction)
self.rect = self.image.get_rect()
self.rect.center = self.position
def draw(self,screen):
self.image.set_alpha(150)
screen.blit(self.image, self.rect)
答案 0 :(得分:1)
我出于某种原因看不到图像,但我认为你想要的是
Surface.set_colorkey(Color, flags=0)
如果输入背景颜色,它(背景)将变为透明。另一个很酷的事情是,如果你在旋转汽车之前设置了颜色键,背景将自动成为你设置颜色键的颜色。
小心点。如果要从外部源导入图像,请确保在设置colorkey之前执行image=image.convert()
。