import pygame import pygame.gfxdraw import math pg = pygame pygame.init() #window = pygame.display.set_mode((600, 300))#,pygame.FULLSCREEN) #x left->right ,y top-> bottom window = pygame.display.set_mode((600, 300),pg.RESIZABLE,32)#,pygame.FULLSCREEN) #x left->right ,y top-> bottom #window = pygame.display.set_mode((600, 300),pg.NOFRAME,32)#,pygame.FULLSCREEN) #x left->right ,y top-> bottom #window = pygame.display.set_mode((1600, 900),pg.NOFRAME,32)#,pygame.FULLSCREEN) #x left->right ,y top-> bottom #window = pygame.display.set_mode((600, 300),pygame.FULLSCREEN) #x left->right ,y top-> bottom # pygame.display.set_mode((self.width, int(self.height+(self.height*0.15))) ,pygame.FULLSCREEN) pg.display.set_caption('LibreLight Animation') def event_read(): inc = 1 for event in pg.event.get(): print("event",event) move_x = 0 move_y = 0 move_z = 0 rot_x = 0 rot_y = 0 rot_z = 0 if event.type== pg.QUIT: print("quit") pg.quit() quit() sys.exit() if "key" in dir(event): if event.key == 27: #ESC pg.KEYDOWN: print("quit") pg.quit() quit() sys.exit() class Grid(): def __init__(self): pixA = [] for c in range(10): row = [] for r in range(10): color = [r,r,r] row.append(color) pixA.append(row) self.pixA = pixA self.red = 0 self.green = 0 self.blue = 0 self.blue_dir = 1 def draw(self): pixA = self.pixA #pixel_array = pygame.PixelArray(window) pixel_array = {} # pygame.PixelArray(window) #pixel_array.open() a_x_max = 600 #pixel_array[0]) a_y_max = 300 #pixel_array) b_x_max = len(pixA[0]) b_y_max = len(pixA) b_h = int(a_x_max / b_x_max) b_w = int(a_y_max / b_y_max) self.red = 0 self.green = 0 #blue = 255 for r,row in enumerate(pixA): self.red += 30 if self.red > 255: self.red = 255 self.green = 0 if self.blue > 255: self.blue = 255 self.blue_dir = 0 if self.blue <= 0: self.blue = 0 self.blue_dir = 1 for c,col in enumerate(row): self.green += 30 if self.green > 255: self.green = 255 color = pygame.Color(self.red,self.green,self.blue) #print("x:{:3} y:{:3} {:3} {:3} c:{}".format(x,y,x+bc,y+br,color)) x = r*b_w y = c*b_h #pixel_array[r*b_w][c*b_h] = color #pixel_array[x:x+b_w-1,y:y+b_h-1] = color k = "{}:{},{}:{} {}".format(x,x+b_w-1,y,y+b_h-1,color) #x,x+10,y,y+10) pixel_array[k] = (x,x+b_w-1,y,y+b_h-1,color) #pixel_array.close() #one = 0 if self.blue_dir: self.blue += 10 else: self.blue -= 10 return pixel_array class _planet(): def __init__(self,x,y): self._pos_center = (x,y) self._ang = 0 self._r = 10 # self._r2 = 10 # orbit,umlaufbahn self._color = [255,255,255] self._x=0 self._y=0 self.ix = math.sin(math.radians(0))*self.r self.iy = math.sqrt(self.r**2 - ix**2) def ang(self): pass def draw(): pass return (self._x,self._y,self._color) class Gobo1(): def __init__(self,x=20,y=20,speed=5): self.pos_x=x self.pos_x_dir = 1 self.pos_y=y self.pos_y_dir = 1 self.r = 7 self.r_dir = 1 self.speed = speed self.ang = 0 self.ix=0 self.iy=0 def rotate(self): self.ix = math.sin(math.radians(0))*self.r self.iy = math.sqrt(self.r**2 - self.ix**2) self.ang+=1 if self.ang >= 360: self.ang = 0 def draw(self,color=[255,255,255]): self.rotate() #pixel_array = pygame.PixelArray(window) pixel_array = {} self.color = pygame.Color(color[0],color[1],color[2]) x=self.pos_x y=self.pos_y x-=self.r y-=self.r k = "{}:{},{}:{}".format(x,x+10,y,y+10) pixel_array[k] = (x,x+10,y,y+10 , self.color ) x+=self.r*2 k = "{}:{},{}:{}".format(x,x+10,y,y+10) pixel_array[k] = (x,x+10,y,y+10 , self.color ) y+=self.r*2 x-=self.r k = "{}:{},{}:{}".format(x,x+10,y,y+10) pixel_array[k] = (x,x+10,y,y+10 , self.color ) #pixel_array.close() if self.pos_x > 300: self.pos_x_dir = 0 if self.pos_x <= self.speed: self.pos_x_dir = 1 if self.pos_x_dir: self.pos_x += self.speed else: self.pos_x -= self.speed if self.r > 20: self.r_dir = 0 if self.r <=7: self.r_dir = 1 if self.r_dir: self.r+=1 else: self.r-=1 return pixel_array run = True one = 1 blue = 0 blue_dir = 1 pos_x_dir = 1 #pixel_array = pygame.PixelArray(window) import time #time.sleep(1) grid = Grid() gobo1 = Gobo1() gobo2 = Gobo1(200,150,speed=8) while run: event_read() if one: window.fill(0) d=grid.draw() d1=gobo1.draw()#20,10) d2=gobo2.draw()#20,10) pixel_array = pygame.PixelArray(window) for k in d: i = d[k] print( k,"i",i) #pixel_array[i[0]:i[1],i[2]:i[3]] = i[4] #(x,x+10,y,y+10 , self.color ) #rect = pygame.Rect(window.get_rect().center, (10, 10)) #.inflate(*([min(window.get_size())//2]*2)) #rect = pygame.draw.circle(window,pg.Color(200,0,200) , (10,10) ,10) rect = pygame.draw.circle(window,i[4] , (i[0]+10,i[2]) ,10) rect = pygame.gfxdraw.aacircle(window, i[0]+10,i[2] ,10,i[4]) #rect = pygame.draw.Rect(window,i[4] , (i[0],i[2]) ,10) #(10, 10)) #rect = pygame.Rect(window.get_rect().center, (0, 0)).inflate(*([min(window.get_size())//2]*2)) #pygame.display.flip() for k in d1: i = d1[k] print( k,"i",i) #pixel_array[i[0]:i[1],i[2]:i[3]] = i[4] #(x,x+10,y,y+10 , self.color ) rect = pygame.draw.circle(window,i[4] , (i[0]+10,i[2]) ,10) rect = pygame.gfxdraw.aacircle(window, i[0]+10,i[2] ,10,i[4]) for k in d2: i = d2[k] print( k,"i",i) #pixel_array[i[0]:i[1],i[2]:i[3]] = i[4] #(x,x+10,y,y+10 , self.color ) rect = pygame.draw.circle(window,i[4] , (i[0]+10,i[2]) ,10) rect = pygame.gfxdraw.aacircle(window, i[0]+10,i[2] ,10,i[4]) pixel_array.close() #pygame.display.flip() #gobo2.draw(color=[255,0,0]) #pygame.display.flip() pg.time.wait(10) pygame.display.flip() pg.time.wait(10) pygame.quit() exit()