中间的太空船在移动时会显示出一些黑色的轮廓。我尝试使该轮廓透明或消失,以使角色移动顺畅。
You can view the image here it has a black outline to the character
是否具有使图像轮廓透明的功能,或者我必须将image属性从png更改为其他图像文件类型。
import math
import pygame as pg
import sys
pg.init()
screen = pg.display.set_mode((1200,650))
screen_rect = screen.get_rect()
background=pg.image.load('Blood.bmp').convert()
clock = pg.time.Clock()
done = False
class Rotator:
def __init__(self, screen_rect):
self.screen_rect = screen_rect
self.master_image = pg.image.load('spaceship3.png').convert_alpha()
self.master_image = pg.transform.smoothscale(pg.image.load('spaceship3.png'), (37,37))
self.master_image.set_colorkey((0, 0, 0))
self.image = self.master_image.copy()
self.rect = self.image.get_rect(center=[600,325])
self.delay = 10
self.timer = 0.0
self.angle = 0
self.distance = 0
self.angle_offset = 0
def get_angle(self):
mouse = pg.mouse.get_pos()
offset = (self.rect.centerx - mouse[0], self.rect.centery - mouse[2])
self.angle = math.degrees(math.atan2(*offset)) - self.angle_offset
old_center = self.rect.center
self.image = pg.transform.rotozoom(self.master_image, self.angle,1)
self.rect = self.image.get_rect(center=old_center)
self.distance = math.sqrt((offset[0] * offset[0]) + (offset[2] * offset[2]))
def update(self):
self.get_angle()
self.display = 'angle:{:.2f} distance:{:.2f}'.format(self.angle, self.distance)
def draw(self, surf):
surf.blit(self.image, self.rect)
rotator = Rotator(screen_rect)
while not done:
for event in pg.event.get():
if event.type == pg.QUIT:
sys.exit()
pygame.quit()
screen.fill((0,0,0))
screen.blit(background, [0, 0])
rotator.update()
rotator.draw(screen)
clock.tick(60)
pg.display.update()