簡體   English   中英

pygame中繪制的表面透明度?

[英]Drawn surface transparency in pygame?

我正在編寫一個捕食者 - 獵物模擬使用python和pygame進行圖形表示。 我正在制作它,所以你可以實際上與一個生物“互動”(殺死它,選擇它並在世界各地跟隨它等)。 現在,當你點擊一個生物時,一個粗圓圈(由gfxdraw類中的各種消除鋸齒的圓圈組成)附着它,這意味着你已經成功地選擇了它。

我的目標是使該圓圈透明,但根據文檔,您無法為繪制曲面設置alpha值。 我已經看到了矩形的解決方案(通過創建一個單獨的半透明表面,blitting它,然后在其上繪制矩形),但不是半填充圓。

你有什么建議? 謝謝 :)

看看下面的示例代碼:

import pygame

pygame.init()
screen = pygame.display.set_mode((300, 300))
ck = (127, 33, 33)
size = 25
while True:
  if pygame.event.get(pygame.MOUSEBUTTONDOWN):
    s = pygame.Surface((50, 50))

    # first, "erase" the surface by filling it with a color and
    # setting this color as colorkey, so the surface is empty
    s.fill(ck)
    s.set_colorkey(ck)

    pygame.draw.circle(s, (255, 0, 0), (size, size), size, 2)

    # after drawing the circle, we can set the 
    # alpha value (transparency) of the surface
    s.set_alpha(75)

    x, y = pygame.mouse.get_pos()
    screen.blit(s, (x-size, y-size))

  pygame.event.poll()
  pygame.display.flip()

在此輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM