3

線のある背景パターンが必要な小さなゲームを作りました。より良いパフォーマンスのために、画像を撮る代わりに Python でパターンを描画したいと思います。

問題は、透明な線を描く方法が見つからないことです。面には解決策がありますが、線にはありません。

パターンコードは次のとおりです。

import pygame
from math import pi

pygame.init()

size = [600, 600]
screen = pygame.display.set_mode(size)

while True:

    for i in range(0, 600, 20):
        pygame.draw.aaline(screen, (0, 255, 0), [i, 0],[i, 600], True)
        pygame.draw.aaline(screen, (0, 255, 0), [0, i],[600, i], True)

    pygame.display.flip()
 
pygame.quit()

誰にも解決策はありますか?

4

2 に答える 2

1

頭を少し叩く必要がありましたが、最終的には理解できました。Pygame.draw は透明度を処理しないため、次のような個別のサーフェスを作成する必要があります。

import pygame from math import pi

pygame.init()

size = [600, 600] screen = pygame.display.set_mode(size)
while True:
    screen.fill((0, 0, 0))
    for i in range(0, 600, 20):
        vertical_line = pygame.Surface((1, 600), pygame.SRCALPHA)
        vertical_line.fill((0, 255, 0, 100)) # You can change the 100 depending on what transparency it is.
        screen.blit(vertical_line, (i - 1, 0))
        horizontal_line = pygame.Surface((600, 1), pygame.SRCALPHA)
        horizontal_line.fill((0, 255, 0, 100)) # You can change the 100 depending on what transparency it is.
        screen.blit(horizontal_line, (0, i - 1))

    pygame.display.flip()

pygame.quit()

これがあなたが探していたものであることを願っています。

于 2013-10-04T08:53:55.787 に答える