demo_animation.py 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747
  1. import pygame
  2. import pygame.gfxdraw
  3. import math
  4. import random
  5. import os
  6. pg = pygame
  7. pygame.init()
  8. main_size=(600,300)
  9. #main_size=(1600,900)
  10. #, pygame.DOUBLEBUF, 32)
  11. #window = pygame.display.set_mode(main_size,pygame.FULLSCREEN) #x left->right ,y top-> bottom
  12. #window = pygame.display.set_mode(main_size,pg.RESIZABLE|pygame.DOUBLEBUF,32)#,pygame.FULLSCREEN) #x left->right ,y top-> bottom
  13. ##window = pygame.display.set_mode(main_size,pg.RESIZABLE)#,32)#,pygame.FULLSCREEN) #x left->right ,y top-> bottom
  14. #window = pygame.display.set_mode(main_size,pg.RESIZABLE, pygame.SRCALPHA)# 32)
  15. window = pygame.display.set_mode(main_size,pg.RESIZABLE|pygame.DOUBLEBUF|pygame.HWSURFACE, 32)
  16. #window = pygame.display.set_mode(main_size,pg.NOFRAME,32)#,pygame.FULLSCREEN) #x left->right ,y top-> bottom
  17. #window = pygame.display.set_mode(main_size,pg.NOFRAME,32)#,pygame.FULLSCREEN) #x left->right ,y top-> bottom
  18. #window = pygame.display.set_mode(main_size,pygame.FULLSCREEN) #x left->right ,y top-> bottom
  19. # pygame.display.set_mode((self.width, int(self.height+(self.height*0.15))) ,pygame.FULLSCREEN)
  20. #pg.display.set_mode(window,pg.DOUBLEBUF) #|pg.OPENGL)
  21. pg.display.set_caption('LibreLight Animation')
  22. def colorize(image, newColor):
  23. image = image.copy()
  24. image.fill((0, 0, 0, 255), None, pygame.BLEND_RGBA_MULT)
  25. image.fill(newColor[0:4] , None, pygame.BLEND_RGBA_ADD)
  26. return image
  27. img2 = pygame.image.load(os.path.join( 'brush.png'))
  28. img2 = pygame.transform.scale(img2, (25, 25))
  29. img2.set_colorkey([0,0,0] ) #pygame.image.BLACK)
  30. #player_rect2 = img2.get_rect(center=(200, 200))
  31. #window.blit(img2, player_rect2)
  32. def draw_alpha():
  33. surface1 = pygame.Surface((100,100))
  34. surface1.set_colorkey((0,0,0))
  35. surface1.set_alpha(128)
  36. pygame.draw.circle(surface1, (0,255,0), (50,50), 50)
  37. class _Particale():
  38. def __init__(self,x,y,xvel,yvel,radius,color):
  39. self.x = x
  40. self.y = y
  41. self.xvel = xvel
  42. self.yvel = yvel
  43. self.radius = radius
  44. self.color = color
  45. self.time = time.time()
  46. self.start = time.time()
  47. self.start2 = random.randint(1,20)/10.
  48. if self.start2 > 1.8:
  49. self.start2 += random.randint(1,20)/10.
  50. self.colors = [(255,255,0),(255,210,0),(255,90,0)]
  51. self.color = random.choice(self.colors)
  52. def draw(self,win):
  53. if time.time() > self.time+0.05:
  54. self.x += self.xvel
  55. self.y += self.yvel
  56. self.time = time.time()
  57. if self.start+self.start2 < time.time():
  58. self.radius -= 0.1
  59. #if time.time() > self.time+0.2:
  60. #pygame.draw.circle(win, color, (int(self.x),int(self.y)),self.radius)
  61. color = self.color
  62. x= round(self.x)
  63. y= round(self.y)
  64. r = round(self.radius)
  65. if len(color) == 3:
  66. color = list(color)
  67. color.append(0)
  68. #pygame.gfxdraw.filled_circle(win, x,y ,r,color )#[0,0,255])
  69. #pygame.gfxdraw.aacircle(win, x,y ,r,color )#[0,0,255])
  70. r = round(r*5)
  71. #img3 = img2.copy()
  72. #img3 = colorize(img2, color ) #(0, 0, 255,15) )
  73. #img3 = colorize(img2,(255, 120, 255,15) )
  74. img3 = colorize(img2,color )
  75. img3 = pygame.transform.scale(img3, (r, r))
  76. player_rect3 = img3.get_rect(center=(x,y))
  77. window.blit(img3, player_rect3)
  78. class Particales():
  79. def __init__(self):
  80. self.data = []
  81. def add(self,x,y):
  82. for z in range(random.randint(1,3)):
  83. s = 10
  84. xvel = random.randint(0,s) -(s/2)
  85. yvel = random.randint(0,s) -(s/2)
  86. r = random.randint(1,2)
  87. p = _Particale(x ,y ,xvel ,yvel,r,(255,255,255))
  88. self.data.append(p)
  89. def draw(self,win):
  90. rem = []
  91. for p in self.data:
  92. p.draw(win)
  93. if p.radius <= 0:
  94. rem.append(p)
  95. for p in rem:
  96. self.data.remove(p)
  97. particales = Particales()
  98. def event_read():
  99. inc = 1
  100. for event in pg.event.get():
  101. print("event",event)
  102. move_x = 0
  103. move_y = 0
  104. move_z = 0
  105. rot_x = 0
  106. rot_y = 0
  107. rot_z = 0
  108. if "pos" in event.dict:
  109. _pos = event.pos
  110. pointer.move(x=_pos[0],y=_pos[1])
  111. if event.type== pg.QUIT:
  112. print("quit")
  113. pg.quit()
  114. quit()
  115. sys.exit()
  116. if "key" in dir(event):
  117. if event.key == 27: #ESC pg.KEYDOWN:
  118. print("quit")
  119. pg.quit()
  120. quit()
  121. sys.exit()
  122. class Grid():
  123. def __init__(self):
  124. pixA = []
  125. for c in range(10):
  126. row = []
  127. for r in range(10):
  128. color = [r,r,r]
  129. row.append(color)
  130. pixA.append(row)
  131. self.pixA = pixA
  132. self.red = 0
  133. self.green = 0
  134. self.blue = 0
  135. self.blue_dir = 1
  136. def draw(self):
  137. pixA = self.pixA
  138. #pixel_array = pygame.PixelArray(window)
  139. pixel_array = {} # pygame.PixelArray(window)
  140. #pixel_array.open()
  141. a_x_max = main_size[1] #n600 #pixel_array[0])
  142. a_y_max = main_size[0] #300 #pixel_array)
  143. b_x_max = len(pixA[0])
  144. b_y_max = len(pixA)
  145. b_h = int(a_x_max / b_x_max)
  146. b_w = int(a_y_max / b_y_max)
  147. self.red = 0
  148. self.green = 0
  149. #blue = 255
  150. for r,row in enumerate(pixA):
  151. self.red += 30
  152. if self.red > 255:
  153. self.red = 255
  154. self.green = 0
  155. if self.blue > 255:
  156. self.blue = 255
  157. self.blue_dir = 0
  158. if self.blue <= 0:
  159. self.blue = 0
  160. self.blue_dir = 1
  161. for c,col in enumerate(row):
  162. self.green += 30
  163. if self.green > 255:
  164. self.green = 255
  165. color = pygame.Color(self.red,self.green,self.blue)
  166. #print("x:{:3} y:{:3} {:3} {:3} c:{}".format(x,y,x+bc,y+br,color))
  167. x = r*b_w
  168. y = c*b_h
  169. #pixel_array[r*b_w][c*b_h] = color
  170. #pixel_array[x:x+b_w-1,y:y+b_h-1] = color
  171. k = "{}:{},{}:{} {}".format(x,x+b_w-1,y,y+b_h-1,color) #x,x+10,y,y+10)
  172. pixel_array[k] = (x,x+b_w-1,y,y+b_h-1,color)
  173. #pixel_array.close()
  174. #one = 0
  175. if self.blue_dir:
  176. self.blue += 10
  177. else:
  178. self.blue -= 10
  179. return pixel_array
  180. class Flow():
  181. def __init__(self,x,y,ang=0):
  182. self._pos_center = (x,y)
  183. self._quadrant = 0
  184. self._ang = ang
  185. self._ang_dir = 1
  186. self._r = 2 #
  187. self._orbit = 100 # orbit,umlaufbahn
  188. self._color_org = [255,255,0]
  189. self._color = [0,0,255,255]
  190. self._x=0
  191. self._y=0
  192. self._ix = 0
  193. self._iy = 0
  194. def rotate(self):
  195. q = 0
  196. if self._ang_dir:
  197. self._ang += 0.5 # degree
  198. else:
  199. self._ang -= 1 # degree
  200. if self._ang >= 360:
  201. self._ang = 0 #self._ang -360
  202. elif self._ang < 0:
  203. self._ang = 360
  204. self._ix = 0 # math.sin(math.radians(ang))*self._orbit
  205. self._iy = int(self._orbit *2 * (self._ang /360)) # math.sqrt(self._orbit**2 - self._ix**2)
  206. def draw(self,x,y):
  207. self._pos_center = (x,y)
  208. self.rotate()
  209. self._x = int(self._pos_center[0] + self._ix)
  210. self._y = int(self._pos_center[1] + self._iy)
  211. f=1
  212. if self._ang > 300:
  213. f = (self._ang -300) / 60
  214. f = 1-f
  215. rgb = self._color_org # = [255,255,0]
  216. #self._color = [ int(rgb[0]*f) , int(rgb[1]*f) ,int(rgb[2]*f) ,0]
  217. elif self._ang < 60:
  218. f = self._ang / 60
  219. rgb = self._color_org # = [255,255,0]
  220. #self._color = [ int(rgb[0]*f) , int(rgb[1]*f) ,int(rgb[2]*f) ,0 ]
  221. self._color[3] = int(f*255)
  222. #print(self._color)
  223. #print("ang {} {} {:3} {:3} {}".format( self._ang,self._quadrant,self._x,self._y,self._color))
  224. #print(self._ang,f)
  225. #print(self,"Q:",int(self._quadrant),self._ang)
  226. return (self._x,self._y,self._color)
  227. class Planet():
  228. def __init__(self,x,y,ang=0):
  229. self._pos_center = (x,y)
  230. self._quadrant = 0
  231. self._ang = ang
  232. self._ang_dir = 1
  233. self._r = 2 #
  234. self._orbit = 60 # orbit,umlaufbahn
  235. self._color_org = [255,255,0]
  236. self._color = [0,255,0]
  237. self._x=0
  238. self._y=0
  239. self._ix = 0
  240. self._iy = 0
  241. def rotate(self):
  242. q = 0
  243. if self._ang_dir:
  244. self._ang += 2 # degree
  245. else:
  246. self._ang -= 1 # degree
  247. if self._ang >= 360:
  248. self._ang = 0 #self._ang -360
  249. elif self._ang < 0:
  250. self._ang = 360
  251. ang = self._ang
  252. self._quadrant = ang//90
  253. ang -= self._quadrant * 90
  254. self._ix = math.sin(math.radians(ang))*self._orbit
  255. self._iy = math.sqrt(self._orbit**2 - self._ix**2)
  256. y = self._iy
  257. x = self._ix
  258. if self._quadrant == 1:
  259. self._iy = -x
  260. self._ix = y
  261. elif self._quadrant == 2:
  262. self._iy = -y
  263. self._ix = -x
  264. elif self._quadrant == 3:
  265. self._iy = x
  266. self._ix = -y
  267. def draw(self,x,y):
  268. self._pos_center = (x,y)
  269. self.rotate()
  270. self._x = int(self._pos_center[0] + self._ix)
  271. self._y = int(self._pos_center[1] + self._iy)
  272. if self._ang > 300:
  273. f = (self._ang -300) / 60
  274. f = 1-f
  275. rgb = self._color_org # = [255,255,0]
  276. self._color = [ int(rgb[0]*f) , int(rgb[1]*f) ,int(rgb[2]*f) ]
  277. elif self._ang < 60:
  278. f = self._ang / 60
  279. rgb = self._color_org # = [255,255,0]
  280. self._color = [ int(rgb[0]*f) , int(rgb[1]*f) ,int(rgb[2]*f) ]
  281. #print("ang {} {} {:3} {:3} {}".format( self._ang,self._quadrant,self._x,self._y,self._color))
  282. #print(self,"Q:",int(self._quadrant),self._ang)
  283. return (self._x,self._y,self._color)
  284. class Animation():
  285. def __init__(self,x=20,y=20,speed=1,_dir=1):
  286. self.pos_x=x
  287. self.pos_x_dir = 1
  288. self.pos_y=y
  289. self.pos_y_dir = 1
  290. self.r = 7
  291. self.r_dir = 1
  292. self.speed = speed
  293. self.ang = 0
  294. self.ix=0
  295. self.iy=0
  296. self.planetes = []
  297. a = 360
  298. d = 3
  299. for i in range(d+1):
  300. i=i+1
  301. p = Flow(self.pos_x,self.pos_y,ang=a/d*i)
  302. p._ang_dir = _dir
  303. self.planetes.append(p)
  304. def rotate(self):
  305. self.ix = math.sin(math.radians(0))*self.r
  306. self.iy = math.sqrt(self.r**2 - self.ix**2)
  307. self.ang+=1
  308. if self.ang >= 360:
  309. self.ang = 0
  310. def draw(self,color=[255,255,255,255]):
  311. self.rotate()
  312. #pixel_array = pygame.PixelArray(window)
  313. pixel_array = {}
  314. self.color = pygame.Color(color[0],color[1],color[2],color[3])
  315. x=self.pos_x
  316. y=self.pos_y
  317. for i,planet in enumerate(self.planetes):
  318. px,py,pcolor = planet.draw(x,y)
  319. k = "{}.{}:{},{}:{}".format(i,px,px+10,py,py+10)
  320. pixel_array[k] = (px,px,py,py , pcolor )
  321. if self.pos_x > 300:
  322. self.pos_x_dir = 0
  323. if self.pos_x <= self.speed:
  324. self.pos_x_dir = 1
  325. if self.pos_x_dir:
  326. self.pos_x += self.speed
  327. else:
  328. self.pos_x -= self.speed
  329. if self.r > 20:
  330. self.r_dir = 0
  331. if self.r <=7:
  332. self.r_dir = 1
  333. if self.r_dir:
  334. self.r+=1
  335. else:
  336. self.r-=1
  337. return pixel_array
  338. class Gobo1():
  339. def __init__(self,x=20,y=20,speed=1,_dir=1,r=17):
  340. self.pos_x=x
  341. self.pos_x_dir = 1
  342. self.pos_y=y
  343. self.pos_y_dir = 1
  344. self.r = r
  345. self.r_dir = 1
  346. self.speed = speed
  347. self.ang = 0
  348. self.ix=0
  349. self.iy=0
  350. self.planetes = []
  351. a = 360
  352. d = 3
  353. for i in range(d+1):
  354. i=i+1
  355. p = Planet(self.pos_x,self.pos_y,ang=a/d*i)
  356. p._ang_dir = _dir
  357. self.planetes.append(p)
  358. def rotate(self):
  359. self.ix = math.sin(math.radians(0))*self.r
  360. self.iy = math.sqrt(self.r**2 - self.ix**2)
  361. self.ang+=1
  362. if self.ang >= 360:
  363. self.ang = 0
  364. def draw(self,color=[255,255,255]):
  365. self.rotate()
  366. #pixel_array = pygame.PixelArray(window)
  367. pixel_array = {}
  368. self.color = pygame.Color(color[0],color[1],color[2])
  369. x=self.pos_x
  370. y=self.pos_y
  371. for i,planet in enumerate(self.planetes):
  372. px,py,pcolor = planet.draw(x,y)
  373. k = "{}.{}:{},{}:{}".format(i,px,px+10,py,py+10)
  374. pixel_array[k] = (px,px,py,py , pcolor )
  375. if self.pos_x > 1600:
  376. self.pos_x_dir = 0
  377. if self.pos_x <= self.speed:
  378. self.pos_x_dir = 1
  379. if self.pos_x_dir:
  380. self.pos_x += self.speed
  381. else:
  382. self.pos_x -= self.speed
  383. if self.r > 20:
  384. self.r_dir = 0
  385. if self.r <=7:
  386. self.r_dir = 1
  387. if self.r_dir:
  388. self.r+=1
  389. else:
  390. self.r-=1
  391. return pixel_array
  392. font15 = pygame.font.SysFont("freemonobold",15)
  393. class POINTER():
  394. def __init__(self):
  395. self.pos = [0,0,0,0]
  396. self.on = 1
  397. self.rgb = [0,100,10,255]
  398. self._x = 0
  399. self._y = 0
  400. self.x = 0
  401. self.y = 0
  402. def move(self,x,y):
  403. self._x = x
  404. self._y = y
  405. def cross(self,x,y):
  406. self.x = x
  407. self.y = y
  408. def draw(self,window,x=0,y=0,alpha=255):
  409. if self.on:
  410. self.rgb[-1] = alpha
  411. #print(self.rgb)
  412. pos = (self._x-5-10,self._y-5-10,10,10)
  413. pos = (self._x-5-10+x,self._y-5-10+y,10,10)
  414. #pygame.gfxdraw.rectangle(window,self.rgb[:3],pos)
  415. #pygame.gfxdraw.rectangle(window,self.rgb[:3],pos)
  416. thickLine = pygame.gfxdraw.rectangle(window,pos , self.rgb)
  417. thickLine = pygame.gfxdraw.rectangle(window,pos , self.rgb)
  418. #thickLine.fill()
  419. # mouse grid posision
  420. fr = font15.render("{}/{}".format(self._x,self._y) ,1, (200,200,200))
  421. window.blit(fr,(200,25))
  422. pointer = POINTER()
  423. def vdim(color,dim):
  424. color[0] = int(color[0]/255*dim)
  425. color[1] = int(color[1]/255*dim)
  426. color[2] = int(color[2]/255*dim)
  427. return color
  428. run = True
  429. one = 1
  430. blue = 0
  431. blue_dir = 1
  432. pos_x_dir = 1
  433. #pixel_array = pygame.PixelArray(window)
  434. import time
  435. #time.sleep(1)
  436. grid = Grid()
  437. gobo1 = Gobo1(main_size[0],main_size[1]/3,speed=3)
  438. gobo2 = Gobo1(200,150,speed=0,_dir=0,r=5)
  439. gobo3 = Gobo1(main_size[0]/2,main_size[1]/2,speed=0,r=30)
  440. anim1 = Animation(main_size[0]/2,main_size[1]/2,speed=1)
  441. #eg.
  442. img = pygame.image.load(os.path.join( 'brush.png'))
  443. img = pygame.transform.scale(img, (25, 25))
  444. img.set_colorkey([0,0,0] ) #pygame.image.BLACK)
  445. player_rect = img.get_rect(center=(200, 200))
  446. #window.blit(img, player_rect)
  447. def grab(x=55,y=55,w=60,h=60):
  448. # usage
  449. # sub = grab()
  450. # window.blit(sub, (500,10))
  451. rect = pygame.Rect(x, y, w, h)
  452. sub = window.subsurface(rect)
  453. #pixArray = pygame.PixelArray(screen)
  454. crop = pygame.Surface((w,h))
  455. crop.blit(sub, (0,0))
  456. return crop
  457. _start = time.time()
  458. xbg = [0,0,0]
  459. xbg_dir = 1
  460. def main():
  461. global _start
  462. global xbg,xbg_dir
  463. event_read()
  464. if one:
  465. #print(_start+0.1<time.time()) #,end="")
  466. if 0:#_start+0.1 > time.time():
  467. #time.sleep(0.01)
  468. #continue
  469. return
  470. #print(_start-time.time(),end="")
  471. _start = time.time()
  472. #print(".",end="")
  473. if xbg_dir > 0 and xbg[0] >= 255:
  474. xbg_dir = -1
  475. if xbg_dir < 0 and xbg[0] <= 0:
  476. xbg_dir = 1
  477. xbg[0] += xbg_dir
  478. if 0:
  479. d=grid.draw()
  480. d1=gobo1.draw()#20,10)
  481. d2=gobo2.draw()#20,10)
  482. d3=gobo3.draw()#20,10)
  483. a1=anim1.draw()#20,10)
  484. window.fill(0) #[255,0,0])
  485. pg.time.wait(10)
  486. pg.time.wait(10)
  487. pg.time.wait(10)
  488. pixel_array = pygame.PixelArray(window)
  489. vd = 255#80
  490. for k in d:
  491. i = d[k]
  492. #rect = pygame.draw.circle(window,i[4] , (i[0]+12,i[2]+12) ,10)
  493. #rect = pygame.gfxdraw.aacircle(window, i[0]+12,i[2]+12 ,10,i[4])
  494. #print(i)
  495. i = list(i)
  496. i[4] = vdim(i[4],vd)
  497. rect = pygame.gfxdraw.box(window, (i[0],i[2] ,i[1]-5,i[3]-5) ,i[4])
  498. #rect = pygame.Rect(window.get_rect().center, (0, 0)).inflate(*([min(window.get_size())//2]*2))
  499. #pygame.display.flip()
  500. for k in d1:
  501. i = d1[k]
  502. #print( k,"i",i)
  503. #pixel_array[i[0]:i[1],i[2]:i[3]] = i[4] #(x,x+10,y,y+10 , self.color )
  504. i = list(i)
  505. i[4] = vdim(i[4],vd)
  506. #arect = pygame.draw.circle(window,i[4] , (i[0],i[2]) ,10)
  507. #rect = pygame.gfxdraw.aacircle(window, i[0],i[2] ,10,i[4])
  508. rect = pygame.gfxdraw.filled_circle(window, i[0],i[2] ,20,i[4] )#[0,0,255])
  509. rect = pygame.gfxdraw.aacircle(window, i[0],i[2] ,20,i[4] )#[0,0,255])
  510. for k in d2:
  511. i = d2[k]
  512. i = list(i)
  513. i[4] = vdim(i[4],vd)
  514. #print( k,"i",i)
  515. #pixel_array[i[0]:i[1],i[2]:i[3]] = i[4] #(x,x+10,y,y+10 , self.color )
  516. #rect = pygame.draw.circle(window,i[4] , (i[0],i[2]) ,10)
  517. #rect = pygame.gfxdraw.aacircle(window, i[0],i[2] ,10,[0,0,255])
  518. rect = pygame.gfxdraw.filled_circle(window, i[0],i[2] ,20,i[4] )#[0,0,255])
  519. rect = pygame.gfxdraw.aacircle(window, i[0],i[2] ,20,i[4] )#[0,0,255])
  520. for k in d3:
  521. i = d2[k]
  522. i = list(i)
  523. i[4] = vdim(i[4],vd)
  524. #print( k,"i",i)
  525. #pixel_array[i[0]:i[1],i[2]:i[3]] = i[4] #(x,x+10,y,y+10 , self.color )
  526. #rect = pygame.draw.circle(window,i[4] , (i[0],i[2]) ,10)
  527. #rect = pygame.gfxdraw.aacircle(window, i[0],i[2] ,10,[0,0,255])
  528. rect = pygame.gfxdraw.filled_circle(window, i[0],i[2] ,10,i[4] )#[0,0,255])
  529. rect = pygame.gfxdraw.aacircle(window, i[0],i[2] ,10,i[4] )#[0,0,255])
  530. for k in a1:
  531. i = a1[k]
  532. #print( k,"i",i)
  533. #pixel_array[i[0]:i[1],i[2]:i[3]] = i[4] #(x,x+10,y,y+10 , self.color )
  534. #print("anim",i)
  535. i = list(i)
  536. _v = i[4]
  537. vd = 200
  538. #_v = vdim(i[4],vd)
  539. rect = pygame.gfxdraw.filled_circle(window, i[0],i[2] ,10,_v )#[0,0,255])
  540. rect = pygame.gfxdraw.aacircle(window, i[0],i[2] ,10,i[4] )#[0,0,255])
  541. vd = 255
  542. #_v = vdim(i[4],vd)
  543. #rect = pygame.draw.circle(window,i[4] , (i[0],i[2]) ,10)
  544. rect = pygame.gfxdraw.filled_circle(window, i[0],i[2] ,20,_v )#[0,0,255])
  545. rect = pygame.gfxdraw.aacircle(window, i[0],i[2] ,20,i[4] )#[0,0,255])
  546. #pixel_array.close()
  547. #pygames.fill([255,0,0,127],(10,10))
  548. if 1:
  549. #window.fill(10)
  550. vd =255
  551. d1=gobo1.draw()#20,10)
  552. d2=gobo2.draw()#20,10)
  553. d3=gobo3.draw()#20,10)
  554. a1=anim1.draw()#20,10)
  555. #window.fill(0) #[255,0,0])
  556. window.fill(xbg)
  557. pointer.draw(window)
  558. z = 0
  559. for k in d1:
  560. i = d1[k]
  561. #print( k,"i",i)
  562. #pixel_array[i[0]:i[1],i[2]:i[3]] = i[4] #(x,x+10,y,y+10 , self.color )
  563. i = list(i)
  564. i[4] = vdim(i[4],vd)
  565. #arect = pygame.draw.circle(window,i[4] , (i[0],i[2]) ,10)
  566. ##rect = pygame.gfxdraw.aacircle(window, i[0],i[2] ,10,i[4])
  567. #rect = pygame.gfxdraw.filled_circle(window, i[0],i[2] ,20,i[4] )#[0,0,255])
  568. rect = pygame.gfxdraw.aacircle(window, i[0],i[2] ,20,i[4] )#[0,0,255])
  569. if 0:#z % 33 == 0:
  570. particales.add(i[0],i[2])
  571. particales.draw(window)
  572. z+=1
  573. #pygame.gfxdraw.pixel(window,i[0],i[2],i[4])
  574. #pygame.gfxdraw.pixel(window,i[0]+1,i[2],i[4])
  575. #pygame.gfxdraw.pixel(window,i[0]+1,i[2]+1,i[4])
  576. #pygame.gfxdraw.pixel(window,i[0],i[2]+1,i[4])
  577. #pygame.gfxdraw.pixel(window,i[0]-1,i[2]+1,i[4])
  578. #pygame.gfxdraw.pixel(window,i[0]-1,i[2],i[4])
  579. #pygame.gfxdraw.pixel(window,i[0]-1,i[2]-1,i[4])
  580. for k in d2:
  581. i = d2[k]
  582. #print( k,"i",i)
  583. #pixel_array[i[0]:i[1],i[2]:i[3]] = i[4] #(x,x+10,y,y+10 , self.color )
  584. i = list(i)
  585. i[4] = vdim(i[4],vd)
  586. #rect = pygame.gfxdraw.aacircle(window, i[0],i[2] ,10,i[4] )#[0,0,255])
  587. pygame.gfxdraw.line(window,i[0],i[2]-10,i[0],i[2]+10,(255,0,255))
  588. for k in d3:
  589. i = d3[k]
  590. i = list(i)
  591. i[4] = vdim(i[4],vd)
  592. #rect = pygame.gfxdraw.aacircle(window, i[0],i[2] ,30,i[4] )#[0,0,255])
  593. rect = pygame.gfxdraw.aacircle(window, i[0],i[2] ,30,i[4] )#[0,0,255])
  594. pygame.gfxdraw.box(window,(i[0]-20,i[2]-5,40,10),(255,255,0))
  595. for k in a1:
  596. i = a1[k]
  597. #print( k,"i",i)
  598. #pixel_array[i[0]:i[1],i[2]:i[3]] = i[4] #(x,x+10,y,y+10 , self.color )
  599. #print("anim",i)
  600. i = list(i)
  601. _v = i[4]
  602. vd = 200
  603. #_v = vdim(i[4],vd)
  604. #rect = pygame.gfxdraw.filled_circle(window, i[0],i[2] ,10,_v )#[0,0,255])
  605. #rect = pygame.gfxdraw.aacircle(window, i[0],i[2] ,10,i[4] )#[0,0,255])
  606. vd = 255
  607. #_v = vdim(i[4],vd)
  608. #rect = pygame.draw.circle(window,i[4] , (i[0],i[2]) ,10)
  609. rect = pygame.gfxdraw.filled_circle(window, i[0],i[2] ,20,_v )#[0,0,255])
  610. rect = pygame.gfxdraw.aacircle(window, i[0],i[2] ,20,i[4] )#[0,0,255])
  611. #print(i)
  612. #particales.add(i[0],i[2])
  613. #particales.draw(window)
  614. #pygame.gfxdraw.pixel(window,i[0],i[2],i[4])
  615. #pygame.gfxdraw.pixel(window,i[0]+1,i[2],i[4])
  616. #pygame.gfxdraw.pixel(window,i[0]+1,i[2]+1,i[4])
  617. #pygame.gfxdraw.pixel(window,i[0],i[2]+1,i[4])
  618. #pygame.gfxdraw.pixel(window,i[0]-1,i[2]+1,i[4])
  619. #pygame.gfxdraw.pixel(window,i[0]-1,i[2],i[4])
  620. #pygame.gfxdraw.pixel(window,i[0]-1,i[2]-1,i[4])
  621. window.blit(img, player_rect)
  622. #pygame.display.flip()
  623. #gobo2.draw(color=[255,0,0])
  624. #pygame.display.flip()
  625. sub = grab(190,0)
  626. pygame.gfxdraw.box(window,(430-2,10-2,60+4,60+4),(255,255,200))
  627. window.blit(sub, (430,10))
  628. sub = grab(190,190)
  629. pygame.gfxdraw.box(window,(500-2,10-2,60+4,60+4),(255,255,200))
  630. window.blit(sub, (500,10))
  631. pointer.draw(window,x=-10,y=-10,alpha=120)
  632. pg.time.wait(10)
  633. #pg.time.wait(10)
  634. pygame.display.update()
  635. #pygame.display.flip()
  636. try:
  637. while run:
  638. main()
  639. except Exception as e:
  640. print("e",e)
  641. pygame.quit()
  642. exit()