"""Programa Creado Por M8AX Para Ver Imagenes Psicodélicas Sin Que Se Apague La Luz Del Movil. Versión 2 Más Rapida Y Mejor""" import appuifw import e32,miso from graphics import * import random,thread class PsychedelicShow: def __init__(self): lolo=random.randint(0,100) if lolo % 2==0: self.shadowsize = 30 self.increment=[1, 1, 1, 1] self.shadowincrement=[1, 1, 1, 1] else: self.shadowsize = random.randint(10,60) self.increment=[random.randint(0,3), random.randint(0,3),random.randint(0,3),random.randint(0,3)] self.shadowincrement=[1, 1, 1, 1] self.exitflag=0 lolo=random.randint(0,100) if lolo % 2==0: self.color=(132,43,243) else: self.color=(random.randint(0, 255),random.randint(0, 255),random.randint(0, 255)) self.old_body=appuifw.app.body self.canvas=appuifw.Canvas(redraw_callback=self.redraw) self.draw=Draw(self.canvas) appuifw.app.body=self.canvas self.limitX = self.canvas.size[0] self.limitY = self.canvas.size[1] self.loc=[random.randint(0,self.limitX-1), random.randint(0,self.limitY-1), random.randint(0,self.limitX-1), random.randint(0,self.limitY-1)] self.shadowloc=[self.loc[0],self.loc[1],self.loc[2],self.loc[3]] self.draw.clear((0,0,0)) self.redraw(()) def close_canvas(self): self.draw=None appuifw.app.body=self.old_body self.canvas=None appuifw.app.exit_key_handler=None def redraw(self,rect): pass def set_exit(self): self.exitflag=1 def draw_lines(self, loc, color): self.draw.line(loc, outline=color) self.draw.line((self.limitX - loc[0], loc[1], self.limitX - loc[2], loc[3]), outline=color) self.draw.line((loc[0], self.limitY - loc[1], loc[2], self.limitY - loc[3]), outline=color) self.draw.line((self.limitX - loc[0], self.limitY - loc[1], self.limitX - loc[2], self.limitY - loc[3]), outline=color) def draw_shadow_lines(self): self.draw_lines(self.shadowloc, (0,0,0)) def check(self, location, index, increment, criteria, initvalue): collision = False if criteria(): increment[index] = increment[index] * -1 location[index] = initvalue collision = True return collision def update(self, location, increment, updatecolor=True): location[0] = location[0] + increment[0] collision = self.check(location, 0, increment, lambda: location[0] >= self.limitX, self.limitX-1) collision = collision or self.check(location, 0, increment, lambda: location[0] <= 0, 0) location[1] = location[1] + increment[1] collision = collision or self.check(location, 1, increment, lambda: location[1] >= self.limitY, self.limitY-1) collision = collision or self.check(location, 1, increment, lambda: location[1] <= 0, 0) location[2] = location[2] + increment[2] collision = collision or self.check(location, 2, increment, lambda: location[2] >= self.limitX, self.limitX-1) collision = collision or self.check(location, 2, increment, lambda: location[2] <= 0, 0) location[3] = location[3] + increment[3] collision = collision or self.check(location, 3, increment, lambda: location[3] >= self.limitY, self.limitY-1) collision = collision or self.check(location, 3, increment, lambda: location[3] <= 0, 0) if collision and updatecolor: self.color = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)) def run(self): appuifw.app.exit_key_handler=self.set_exit while not self.exitflag: self.draw_lines(self.loc, self.color) self.update(self.loc, self.increment) e32.ao_sleep(0.01) if self.shadowsize > 0: self.shadowsize = self.shadowsize - 1 else: self.draw_shadow_lines() self.update(self.shadowloc, self.shadowincrement, False) self.close_canvas() def lighton(): while 1: miso.reset_inactivity_time() e32.ao_sleep(5) appuifw.app.screen='full' thread.start_new_thread(lighton, ()) game=PsychedelicShow() game.run()