Python 如何使PNG画布在pygame中浏览图片
我想将Python 如何使PNG画布在pygame中浏览图片,python,image,unicode,pygame,Python,Image,Unicode,Pygame,我想将pawnPic切换到屏幕上,让背景“不可见”或“透明”。现在白色的帆布挡住了整个棋盘,所以看起来很糟糕。这是我使用的简短代码 FPS = 30 black = (0,0,0) white = (255, 255, 255) brown = (139, 69, 19) lBrown = (235, 188, 128) HEIGHT, WIDTH = 960, 960 game_display = pygame.display.set_mode((HEIGHT, WIDTH)) pygame
pawnPic
切换到屏幕上,让背景“不可见”或“透明”。现在白色的帆布挡住了整个棋盘,所以看起来很糟糕。这是我使用的简短代码
FPS = 30
black = (0,0,0)
white = (255, 255, 255)
brown = (139, 69, 19)
lBrown = (235, 188, 128)
HEIGHT, WIDTH = 960, 960
game_display = pygame.display.set_mode((HEIGHT, WIDTH))
pygame.display.set_caption("Chess")
boxL = int(((HEIGHT-40) / 8))
clock = pygame.time.Clock()
pawnPic = pygame.image.load(r'C:\Users\Adjun\Dropbox\My PC (DESKTOP-BHG02HU)\Pictures\Saved Pictures\pawnPic.png')
pawnPic = pygame.transform.scale(pawnPic, (115, 115))
pawn1X = boxL * 3 + 20
pawn1Y = boxL * 5 + 20
Exit_game = True
while Exit_game:
clock.tick(FPS)
mouse_x, mouse_y = pygame.mouse.get_pos()
for event in pygame.event.get():
if event.type == pygame.QUIT:
Exit_game = False
game_display.fill(white)
for i in range(4):
i += 1
pygame.draw.rect(game_display, lBrown, (115 * i * 2 - 210, 20, 115, 115), 0)
pygame.draw.rect(game_display, lBrown, (115 * i * 2 - 95, 135, 115, 115), 0)
pygame.draw.rect(game_display, lBrown, (115 * i * 2 - 210, 250, 115, 115), 0)
pygame.draw.rect(game_display, lBrown, (115 * i * 2 - 95, 365, 115, 115), 0)
pygame.draw.rect(game_display, lBrown, (115 * i * 2 - 210, 480, 115, 115), 0)
pygame.draw.rect(game_display, lBrown, (115 * i * 2 - 95, 595, 115, 115), 0)
pygame.draw.rect(game_display, lBrown, (115 * i * 2 - 210, 710, 115, 115), 0)
pygame.draw.rect(game_display, lBrown, (115 * i * 2 - 95, 825, 115, 115), 0)
pygame.draw.rect(game_display, brown, (115 * i * 2 - 95, 20, 115, 115), 0)
pygame.draw.rect(game_display, brown, (115 * i * 2 - 210, 135, 115, 115), 0)
pygame.draw.rect(game_display, brown, (115 * i * 2 - 95, 250, 115, 115), 0)
pygame.draw.rect(game_display, brown, (115 * i * 2 - 210, 365, 115, 115), 0)
pygame.draw.rect(game_display, brown, (115 * i * 2 - 95, 480, 115, 115), 0)
pygame.draw.rect(game_display, brown, (115 * i * 2 - 210, 595, 115, 115), 0)
pygame.draw.rect(game_display, brown, (115 * i * 2 - 95, 710, 115, 115), 0)
pygame.draw.rect(game_display, brown, (115 * i * 2 - 210, 825, 115, 115), 0)
pygame.draw.rect(game_display, black, (20, 20, 920, 920), 1)
game_display.blit(pawnPic, (pawn1X, pawn1Y))
pygame.display.update()
另外,如果有人知道,如果我有多个光点棋子,我如何让pygame知道鼠标在哪个图像上,而不进行pygame单独检查每个像素或每个棋盘点使用“segoeuisymbol”系统字体作为棋盘模式而不是图像。看见例如,的Unicode字符为“\u2659”:
seguisy115=pygame.font.SysFont(“seguisymbol”,115)
pawnChar='\u2659'
pawnPic=seguisy115.render(pawnChar,真,黑色)
另请参见。使用“segoeuisymbol”系统字体作为国际象棋模式,而不是图像。看见例如,的Unicode字符为“\u2659”:
seguisy115=pygame.font.SysFont(“seguisymbol”,115)
pawnChar='\u2659'
pawnPic=seguisy115.render(pawnChar,真,黑色)
另请参见。PNG本身有透明度吗?@AKX我不知道你说的是什么意思。如果这有帮助的话,这就是我所说的图像。链接本身是透明的,所以我认为so@KamilLeocadie-Olsen如果你已经正确下载了图片,那么背景应该是透明的。我重新下载了它,但仍然无法工作。im右键单击图像,然后按“将图像另存为”。这是正确的方法还是我应该做别的事情@Rabbid76@KamilLeocadie-Olsen当您执行“将图像另存为”时,透明度将丢失,并且您可能会得到棋盘格背景。你必须使用官方下载。出于调试原因,请尝试另一个图像PNG本身是否具有透明度?@AKX我不确定你的意思。如果这有帮助的话,这就是我所说的图像。链接本身是透明的,所以我认为so@KamilLeocadie-Olsen如果你已经正确下载了图片,那么背景应该是透明的。我重新下载了它,但仍然无法工作。im右键单击图像,然后按“将图像另存为”。这是正确的方法还是我应该做别的事情@Rabbid76@KamilLeocadie-Olsen当您执行“将图像另存为”时,透明度将丢失,并且您可能会得到棋盘格背景。你必须使用官方下载。出于调试原因,请尝试另一个映像