animation.py 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. import pygame
  2. pg = pygame
  3. pygame.init()
  4. #window = pygame.display.set_mode((600, 300))#,pygame.FULLSCREEN) #x left->right ,y top-> bottom
  5. window = pygame.display.set_mode((600, 300),pg.RESIZABLE,32)#,pygame.FULLSCREEN) #x left->right ,y top-> bottom
  6. #window = pygame.display.set_mode((600, 300),pg.NOFRAME,32)#,pygame.FULLSCREEN) #x left->right ,y top-> bottom
  7. #window = pygame.display.set_mode((1600, 900),pg.NOFRAME,32)#,pygame.FULLSCREEN) #x left->right ,y top-> bottom
  8. #window = pygame.display.set_mode((600, 300),pygame.FULLSCREEN) #x left->right ,y top-> bottom
  9. # pygame.display.set_mode((self.width, int(self.height+(self.height*0.15))) ,pygame.FULLSCREEN)
  10. pg.display.set_caption('LibreLight Animation')
  11. def event_read():
  12. inc = 1
  13. for event in pg.event.get():
  14. print("event",event)
  15. move_x = 0
  16. move_y = 0
  17. move_z = 0
  18. rot_x = 0
  19. rot_y = 0
  20. rot_z = 0
  21. if event.type== pg.QUIT:
  22. print("quit")
  23. pg.quit()
  24. quit()
  25. sys.exit()
  26. if "key" in dir(event):
  27. if event.key == 27: #ESC pg.KEYDOWN:
  28. print("quit")
  29. pg.quit()
  30. quit()
  31. sys.exit()
  32. class Grid():
  33. def __init__(self):
  34. pixA = []
  35. for c in range(10):
  36. row = []
  37. for r in range(10):
  38. color = [r,r,r]
  39. row.append(color)
  40. pixA.append(row)
  41. self.pixA = pixA
  42. self.red = 0
  43. self.green = 0
  44. self.blue = 0
  45. self.blue_dir = 1
  46. def draw(self):
  47. pixA = self.pixA
  48. pixel_array = pygame.PixelArray(window)
  49. #pixel_array.open()
  50. a_x_max = len(pixel_array[0])
  51. a_y_max = len(pixel_array)
  52. b_x_max = len(pixA[0])
  53. b_y_max = len(pixA)
  54. b_h = int(a_x_max / b_x_max)
  55. b_w = int(a_y_max / b_y_max)
  56. self.red = 0
  57. self.green = 0
  58. #blue = 255
  59. for r,row in enumerate(pixA):
  60. self.red += 30
  61. if self.red > 255:
  62. self.red = 255
  63. self.green = 0
  64. if self.blue > 255:
  65. self.blue = 255
  66. self.blue_dir = 0
  67. if self.blue <= 0:
  68. self.blue = 0
  69. self.blue_dir = 1
  70. for c,col in enumerate(row):
  71. self.green += 30
  72. if self.green > 255:
  73. self.green = 255
  74. color = pygame.Color(self.red,self.green,self.blue)
  75. #print("x:{:3} y:{:3} {:3} {:3} c:{}".format(x,y,x+bc,y+br,color))
  76. x = r*b_w
  77. y = c*b_h
  78. #pixel_array[r*b_w][c*b_h] = color
  79. pixel_array[x:x+b_w-1,y:y+b_h-1] = color
  80. pixel_array.close()
  81. #one = 0
  82. if self.blue_dir:
  83. self.blue += 2
  84. else:
  85. self.blue -= 2
  86. class Gobo1():
  87. def __init__(self,x=20,y=20):
  88. self.pos_x = 10
  89. self.pos_x_dir = 1
  90. self.pos_y = 30
  91. self.pos_y_dir = 1
  92. self.r = 7
  93. self.r_dir = 1
  94. self.pos_x=x
  95. self.pos_y=y
  96. def draw(self,color=[255,255,255]):
  97. #pixel_array = pygame.PixelArray(window)
  98. pixel_array = {}
  99. self.color = pygame.Color(color[0],color[1],color[2])
  100. x=self.pos_x
  101. y=self.pos_y
  102. x-=self.r
  103. y-=self.r
  104. pixel_array[x:x+10,y:y+10] = self.color
  105. x+=self.r*2
  106. pixel_array[x:x+10,y:y+10] = self.color
  107. y+=self.r*2
  108. x-=self.r
  109. pixel_array[x:x+10,y:y+10] = self.color
  110. pixel_array.close()
  111. if self.pos_x > 300:
  112. self.pos_x_dir = 0
  113. if self.pos_x <= 10:
  114. self.pos_x_dir = 1
  115. if self.pos_x_dir:
  116. self.pos_x += 1
  117. else:
  118. self.pos_x -= 1
  119. if self.r > 20:
  120. self.r_dir = 0
  121. if self.r <=7:
  122. self.r_dir = 1
  123. if self.r_dir:
  124. self.r+=1
  125. else:
  126. self.r-=1
  127. run = True
  128. one = 1
  129. blue = 0
  130. blue_dir = 1
  131. pos_x_dir = 1
  132. #pixel_array = pygame.PixelArray(window)
  133. import time
  134. time.sleep(1)
  135. grid = Grid()
  136. gobo1 = Gobo1()
  137. gobo2 = Gobo1(20,150)
  138. while run:
  139. event_read()
  140. if one:
  141. window.fill(0)
  142. grid.draw()
  143. rect = pygame.Rect(window.get_rect().center, (0, 0)).inflate(*([min(window.get_size())//2]*2))
  144. pygame.display.flip()
  145. #gobo1.draw()#20,10)
  146. #pygame.display.flip()
  147. #gobo2.draw(color=[255,0,0])
  148. #pygame.display.flip()
  149. pygame.display.flip()
  150. pg.time.wait(10)
  151. pygame.quit()
  152. exit()