Sam Tubb
Sam Tubb

Reputation: 965

Pygame: Set alpha level for shapes

How would I go about setting the alpha value of a pygame shape: pygame.draw.circle()

I tried using an RGBA value, but to no avail.. here is the draw code:

pygame.draw.circle(screen, ((0,255,0,alpha)), (px,py), 15)

px and py are the player's (circle's) position. alpha is just a place holder for what I thought would be an alpha value.

Anyone got any ideas?

Upvotes: 1

Views: 3967

Answers (2)

furas
furas

Reputation: 143231

draw.circle() doesn't use alpha so you have to draw on Surface() (to get bitmap) and add alpha and colorkey to Surface()

import pygame

pygame.init()

screen = pygame.display.set_mode((800, 600), 0, 32)

surface1 = pygame.Surface((100,100))
surface1.set_colorkey((0,0,0))
surface1.set_alpha(128)
pygame.draw.circle(surface1, (0,255,0), (50,50), 50)

surface2 = pygame.Surface((100,100))
surface2.set_colorkey((0,0,0))
surface2.set_alpha(128)
pygame.draw.circle(surface2, (255,0,0), (50,50), 50)

screen.blit(surface1, (100,100))
screen.blit(surface2, (120,120))

pygame.display.update()

RUNNING = True

while RUNNING:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            RUNNING = False

pygame.quit()

Upvotes: 5

Kill Console
Kill Console

Reputation: 2023

pygame.draw.circle

It seems the circle() function do not support alpha. If you want to draw translucent circle by pygame, you can load a image which include alpha(i.e PNG) as a surface and then set the alpha value.

Upvotes: 2

Related Questions