Я создал поверхность, на которой я использовал пиксельный массив, чтобы помещать пиксели, но я хочу сделать поверхность прозрачной, но оставляя пиксели непрозрачными, я пробовал сделать поверхность прозрачна, а затем рисует пиксели на поверхности, но это просто делает пиксели прозрачными, любую помощь или что-то, что я пропустил?создание прозрачной поверхности для рисования пикселей в pygame
-Edit- Надеется, что это поможет в некотором роде, это объект класса, который создает поверхность, которая является галактикой
Кроме того, я сказал, что я пробовал, там не намного больше, чтобы сказать
class Galaxy(object):
def __init__(self,posx=0,posy=0,radius=0,depth=0):
radius = int(radius)
self.size = [radius*2,radius*2,depth]
self.posx = posx
self.posy = posy
self.radius = radius
#create array for stars
self.starArray = []
#create surface for stars
self.surface = pygame.Surface([radius*2,radius*2])
self.starPixel = pygame.PixelArray(self.surface)
#populate
for x in range(radius*2):
for y in range(radius*2):
#generate stars
num1 = noise.snoise2(x+posx,y+posy,repeatx=radius*10,repeaty=radius*10)
distance = math.sqrt(math.pow((x-radius),2)+math.pow((y-radius),2))
if distance < 0:
distance = distance * -1
#print(x,y,"is",distance,"from",radius,radius)
val = 5
#glaxy density algorithm
num = (num1/(((distance+0.0001)/radius)*(val*10))) * 10
#density
if num > (1/val):
#create star
self.starArray.append(Stars(x,y,seed=num1*100000,distance=distance))
#print(num*1000)
self.addPixels()
#adds all star pixels to pixel array on surface
def addPixels(self):
for i in self.starArray:
self.starPixel[i.x,i.y] = i.colour
del self.starPixel
#sends to screen to await rendering
def display(self):
screen.displaySurface(self.surface,[self.posx+camPosX,self.posy+camPosY])
Есть код, который вы написано, что вы можете показать нам? –
Не особенно, я создал поверхность, затем использовал алгоритм, чтобы заполнить поверхность пикселями, чтобы они напоминали галактику, затем передает поверхность на функцию, чтобы поместить поверхность на экран. – Ctrl
- это то, что вам нужно, чтобы изменить, чтобы заставить работу работать? если это так - мы должны увидеть, что это поможет вам. если нет - тогда ваш вопрос не указан достаточно хорошо ... так или иначе, вы должны сказать нам, что именно вы используете, чтобы добавить эти пиксели на экран ... если у вас есть * написанное программное обеспечение *, чтобы сделать что тогда вам нужно включить его ... если у вас есть только * используемое программное обеспечение *, чтобы сделать это, тогда вы на неправильном сайте, чтобы получить справку ... и, вероятно, вам нужно попробовать SuperUser вместо Stackoverflow (попробуйте посмотреть под Кнопка StackExchange в верхнем левом углу) –