Advertisement
CrazedProgrammer

Visual Demo 1

Apr 19th, 2015
589
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 19.73 KB | None | 0 0
  1. -- Visual Demo 1 by CrazedProgrammer
  2. -- This program needs the Surface API 1.3 in the same directory as the program.
  3. -- If the Surface API 1.3 doesn't exist it will try to download it.
  4. -- You can find info and documentation on these pages:
  5. --
  6. -- You may use this in your ComputerCraft OSes and modify it without asking.
  7. -- However, you may not publish this program under your name without asking me.
  8. -- If you have any suggestions, bug reports or questions then please send an email to:
  9. -- crazedprogrammer@gmail.com
  10.  
  11. function draw()
  12.   display:drawSurfaceScaled(1, 1, 51, 19, surf)
  13.   display:render()
  14.   os.sleep(0)
  15.   surf:clear()
  16.   display:clear()
  17. end
  18.  
  19. local dir = fs.getDir(shell.getRunningProgram())
  20. if not fs.exists(dir.."/surface") or fs.isDir(dir.."/surface") then
  21.   fs.delete(dir.."/surface")
  22.   shell.run("pastebin get ajFj7yNK /"..dir.."/surface")
  23. end
  24. os.loadAPI(dir.."/surface")
  25. srf = surface.loadString("_0033000820_f20ef20_f20_f20_f20_f20_f20_f20_f20_f20_f20_f20_f20_f20ef20_f20_f20_f20_f20_f20_f20_f20_f20_f20_f20_f20_f20_f20_f20_f20bf20_f20_f20bf20bf20_f20_f20bf20bf20bf20_f20_f20_f201f20_f20_f20_f20_f201f201f20_f20ef20_f20ef20_f20_f20_f20_f20_f20_f20_f20_f20_f20_f20ef20_f20_f20_f20_f20_f20_f20_f20_f20_f20_f20_f20_f20_f20_f20_f20bf20_f20bf20_f20bf20_f20bf20_f20_f20bf20_f20_f20_f201f201f20_e20_f20_f20_f20_f20_f201f20ef20_f20_f20_f20_f20_f20_f20_f20_f20_f20_f20_f20_f20ef20_f20_f20_f20_f20_f20_f20_f20_f20_f20_f20_f20_f20_f20_f20_f20bf20_f20bf20_f20bf20_f20bf20_f20_f20bf20_f20_f20_f20_f201f20_f20_f20_f20_f20_f20_f201f20_f20ef20_f20_f20ef20_f20ef20_f20ef20_f20ef20_f20ef20ef20ef20_f20_f20ef20_f20_f20_f20ef20ef20_f20_f20ef20_f20_f20_f20bf20bf20bf20_e20bf20bf20_f20_f20_f20bf20_f20_f20_f20_f201f20_f20_f20_f20_f201f201f20_f20_f20_f20ef20_f20ef20_f20ef20_f20ef20ef20_f20_f20_f20ef20_f20_f20ef20_f20ef20_e20ef20_e20_e20_e20ef20_e20ef20_e20_e20bf20_e20bf20_e20bf20_e20_e20_e20_e20bf20_f20_f20_f20_f201f20_f20_f20_f20_f20_f20_e201f20_f20_f20ef20_f20ef20_f20ef20_f20ef20_f20_f20_f20_f20ef20_f20_f20ef20_f20ef20_f20ef20_f20_f20_f20ef20ef20ef20_f20_f20bf20_f20bf20_e20bf20_f20_f20_f20_f20bf20_f20_f20_f20_f201f20_f20_f20_f20_f20_f20_f201f20ef20_f20ef20_f20ef20_f20ef20_f20ef20_f20_f20_f20_f20ef20_f20_f20ef20_f20ef20_f20ef20_f20_f20_f20ef20_f20_f20_f20_f20bf20_f20bf20_f20bf20_f20_f20_f20_f20bf20_f20_f20_f20_f201f20_f20_f20_f20_f20_f20_f201f20_f20ef20_f20_f20_f20ef20ef20_f20ef20_f20_f20_f20_f20ef20_f20_f20_f20ef20ef20_f20_f20ef20ef20_f20_f20ef20ef20_f20_f20bf20_f20bf20_f20bf20_f20_f20_f20bf20bf20bf20_f20_f201f201f201f20_f201f20_f201f201f20_f")
  26. cp = surface.loadString("_00100010208f208f208f208f208f208f208f208f208f208f208f208f208f208f208f208f208f20ff20ff20ff20ff20ff20ff20ff20ff20ff20ff20ff20ff20ff20ff207f208f20ff20ff200f200f20ff200f200f20ff20ff20ff20ff20ff20ff20ff207f208f20ff200f20ff20ff20ff200f20ff200f20ff20ff20ff20ff20ff20ff207f208f20ff200f20ff20ff20ff200f200f20ff20ff20ff20ff20ff20ff20ff207f208f20ff200f20ff20ff20ff200f20ff20ff20ff20ff20ff20ff20ff20ff207f208f20ff20ff200f200f20ff200f20ff20ff20ff200f200f200f20ff20ff207f208f20ff20ff20ff20ff20ff20ff20ff20ff20ff20ff20ff20ff20ff20ff207f208f207f207f207f207f207f207f207f207f207f207f207f207f207f207f207f20_720_720_720_720_720_720_72077207720_720_720_720_720_720_720_720_720_720_720_720_720_7207720772077207720_720_720_720_720_720_720872087208720872087208720872087208720872087208720872087208720872087208720872087208720872087208720872087208720872087208720872077208720772077207720772077208720772077208720772077208720b72087207720872087208720872087208720872087208720872087208720872087208720772077207720772077207720772077207720772077207720772077207720772077")
  27. mario = surface.loadString("_000c001020_f20_f20_f20ef20ef20ef20ef20ef20_f20_f20_f20_f20_f20_f20ef20ef20ef20ef20ef20ef20ef20ef20ef20_f20_f20_f20cf20cf20cf204f204f20cf204f20_f20_f20_f20_f20cf204f20cf204f204f204f20cf204f204f204f20_f20_f20cf204f20cf20cf204f204f204f20cf204f204f204f20_f20cf20cf204f204f204f204f20cf20cf20cf20cf20_f20_f20_f20_f204f204f204f204f204f204f204f20_f20_f20_f20_f20ef20ef20bf20ef20ef20ef20ef20_f20_f20_f20_f20ef20ef20ef20bf20ef20ef20bf20ef20ef20ef20_f20ef20ef20ef20ef20bf20bf20bf20bf20ef20ef20ef20ef200f200f20ef20bf201f20bf20bf201f20bf20ef200f200f200f200f200f20bf20bf20bf20bf20bf20bf200f200f200f200f200f20bf20bf20bf20bf20bf20bf20bf20bf200f200f20_f20_f20bf20bf20bf20_f20_f20bf20bf20bf20_f20_f20_f20cf20cf20cf20_f20_f20_f20_f20cf20cf20cf20_f20cf20cf20cf20cf20_f20_f20_f20_f20cf20cf20cf20cf")
  28. mworld = surface.loadString("_0026001320df205f205f20ff203f203f203f203f203f203f203f203f203f203f203f203f203f203f203f203f203f203f203f203f203f203f203f203f20ff20ff20ff20ff20ff20ff20ff203f203f203f205f205f205f20ff203f203f203f203f203f203f203f203f203f203f203f203f203f203f203f203f203f203f203f203f203f203f203f20ff204f204f204f204f204f204f20ff203f203f203f20df205f205f20ff203f203f203f203f203f203f203f203f203f203f203f203f201f201f201f201f203f203f203f203f203f203f203f20ff204f204f204f204f20ff204f20ff203f203f203f205f205f205f20ff203f203f203f203f203f203f203f203f203f203f203f201f201f201f201f201f201f203f203f203f203f203f203f20ff204f204f204f204f20ff204f20ff203f203f203f20df205f205f20ff203f203f203f203f203f203f203f203f203f203f201f201f201f201f201f201f201f201f203f203f203f203f203f20ff204f204f204f204f20ff204f20ff203f203f203f205f205f205f20ff203f203f203f203f203f203f203f203f201f201f201f201f201f201f201f201f201f201f201f203f203f203f203f20ff204f204f204f204f20ff204f20ff203f203f203f20df205f205f20ff203f203f203f203f203f203f203f201f20ff20ff20ff201f201f201f201f201f201f20ff20ff201f203f203f203f20ff20ff204f204f204f204f20ff20ff203f203f203f205f205f205f20ff203f203f203f203f203f203f201f201f201f201f204f20ff201f201f201f201f20ff204f201f201f201f203f203f203f20ff204f20ff20ff204f20ff203f203f203f203f20df205f205f20ff203f203f203f203f203f203f201f201f201f201f204f20ff20ff20ff20ff20ff20ff204f201f201f201f203f203f20ff204f20ff204f204f20ff204f20ff203f203f203f205f205f205f20ff203f203f203f203f203f201f201f201f201f201f204f20ff204f201f201f204f20ff204f201f201f201f201f203f20ff204f204f204f204f204f204f20ff203f203f203f20df205f205f20ff203f203f203f203f203f201f201f201f201f201f204f204f204f201f201f204f204f204f201f201f201f201f203f20ff204f204f204f204f20ff204f20ff203f203f203f205f205f205f20ff203f203f203f203f203f201f201f201f201f201f201f201f201f201f201f201f201f201f201f201f201f201f203f20ff204f204f204f204f20ff204f20ff203f203f203f20df205f205f20ff203f203f203f203f203f203f201f201f201f201f201f204f204f204f204f204f204f201f201f201f201f203f203f20ff204f204f204f204f20ff204f20ff203f203f203f205f205f205f20ff203f203f203f203f203f203f203f203f203f203f204f204f204f204f204f204f204f204f203f203f203f203f203f20ff204f204f204f204f20ff204f20ff203f203f203f20df205f205f20ff203f203f203f203f203f203f203f20ff20ff20ff204f204f204f204f204f204f204f204f203f203f203f203f203f20ff20ff204f204f204f204f20ff20ff203f203f203f205f205f205f20ff203f203f203f203f203f203f20ff20ff20ff20ff20ff20ff204f204f204f204f204f20ff20ff203f203f203f203f203f20ff204f20ff20ff204f20ff203f203f203f203f20df205f205f20ff203f203f203f203f203f203f20ff20ff20ff20ff20ff20ff20ff204f204f204f20ff20ff20ff203f203f203f203f20ff204f20ff204f204f20ff204f20ff203f203f203f201f204f204f204f204f201f201f204f204f204f204f20ff20ff20ff20ff20ff20ff201f204f20ff20ff20ff201f201f204f204f204f204f204f204f204f204f20ff201f204f204f204f204f204f201f201f201f201f20ff204f201f201f201f201f201f201f201f201f201f20ff204f201f201f201f201f20ff204f201f201f201f201f201f201f201f201f20ff204f201f201f201f201f")
  29. trans1 = surface.loadString("_00260013203f203f203f20ff206f206f206f20ff206f206f20ff206f206f206f206f206f20ff203f203f203f203f203f203f203f203f203f203f203f203f203f203f203f20ff20ff20ff20ff20ff20ff203f203f203f203f20ff206f206f206f206f20ff20ff20ff206f206f206f20ff203f203f203f203f203f203f203f203f203f203f203f203f20ff20ff20ff203f203f20ff20df20df20ff203f203f203f20ff20ff20ff20ff20ff20ff20ff20ff20ff20ff20ff20ff20ff203f203f203f203f203f203f203f203f203f203f203f203f20ff20ff20df20df20ff203f20ff20df20df20ff203f203f20ff20ff20ff20df20df20df20df20df20df20df20df20df20df20ff20ff203f203f203f203f203f203f203f203f203f203f203f20ff20df20df20df20df20ff20ff20df20df20ff20ff203f20ff20ff20df20df20df20df20df20df20df20df20df20df20df20df20ff203f203f203f203f203f203f203f203f203f203f203f20ff20df20df20ff20df20df20ff20df20df20ff20df203f20ff20ff20df20df20df20df20df20df20df20df20df20df20df20df20ff203f203f203f203f203f203f203f203f203f203f203f203f20ff20df20df20ff20df20ff20df20df20ff20df203f20ff20ff20df20df20df20df20df20df20df20df20df20df20df20df20ff203f203f203f203f203f203f203f203f203f203f203f203f20ff20df20df20df20ff20ff20df20df20ff20ff203f203f20ff20ff20ff20ff20ff20ff20ff20ff20ff20ff20ff20ff20ff20ff203f203f203f203f203f203f203f203f203f203f203f203f203f20ff20ff20df20df20df20df20df20df20df203f203f20ff20ff20df20df20df20df20df20df20df20df20df20df20ff203f203f203f203f203f203f203f203f203f203f203f203f203f203f203f203f20ff20ff20df20df20df20df20ff203f20ff200f200f20ff20df20df20df20df20df20df20df20df20df20ff203f203f203f203f203f203f203f203f203f203f203f203f203f20ff20ff20ff203f203f20ff20df20df20ff203f203f20ff200f200f200f20ff20df20df20df20df20df20df20df20ff20ff20ff203f203f203f203f203f203f203f203f203f203f203f20ff20ff20df20df20ff203f20ff20df20df20ff203f203f20ff200f200f20ff20df20df20df20df20df20df20df20df20df20df20ff20ff203f203f203f203f203f203f203f203f203f203f20ff20df20df20df20df20ff20ff20df20df20ff20ff203f20ff20ff20ff20df20df20df20df20df20df20df20df20df20df20df20df20ff203f203f203f203f203f203f203f203f203f203f20ff20df20df20ff20df20df20ff20df20df20ff20df203f20ff20ff20df20df20df20df20df20df20df20df20df20df20df20df20df20ff203f203f203f203f203f203f203f203f203f203f203f20ff20df20df20ff20df20ff20df20df20ff20df203f20ff20ff20df20df20df20df20df20df20df20df20df20df20df20df20df20ff203f203f203f203f203f203f203f203f203f203f203f20ff20df20df20df20ff20ff20df20df20ff20ff203f20ff20ff20df20df20df20df20df20df20df20df20df20df20df20df20df20ff203f203f203f203f203f203f203f203f203f203f203f203f20ff20ff20df20df20df20df20df20df20df203f20ff20ff20ff20df20df20df20df20df20df20df20df20df20df20df20ff20ff203f203f203f203f203f203f203f203f203f203f203f203f203f203f20ff20ff20df20df20df20df20ff20ff20ff20ff20ff20ff20ff20ff20ff20ff20ff20ff20ff20ff20ff20ff20ff203f203f203f20ff20ff20ff20ff20ff20ff20ff20ff20ff20ff20ff20ff20ff20ff20ff20ff20ff20ff20ff201f201f201f201f20ff201f201f20ff203f203f203f203f203f203f203f203f203f203f203f20ff20df20df205f20df205f205f205f20df20df205f20df20df20df20df20df20df20df20df")
  30. trans2 = surface.loadString("_00260013203f203f203f203f203f203f203f203f20ff20ff20ff20ff20ff203f203f203f203f203f203f203f203f203f203f203f20ff20ff20ff20ff203f20ff20ff20ff203f203f203f203f203f203f203f203f203f203f203f203f20ff20ff202f206f206f206f202f20ff20ff203f203f203f203f203f203f203f203f20ff20ff200f200f20ff20ff200f200f206f20ff20ff203f203f203f203f203f203f203f203f203f20ff202f206f206f206f206f206f206f206f202f20ff203f203f203f203f203f203f203f20ff206f200f200f206f20ff206f200f200f206f206f20ff203f203f203f203f203f203f203f20ff202f206f206f206f206f206f206f206f206f206f20ff203f203f203f203f203f203f203f20ff206f20ff200f200f206f200f200f200f200f200f206f20ff203f203f203f203f203f203f20ff206f206f206f206f206f206f206f206f206f206f202f20ff203f203f203f203f203f203f20ff206f206f206f200f206f206f206f200f206f20ff20ff20ff20ff203f203f203f203f20ff206f206f206f206f206f206f206f20ff206f20ff206f202f20ff203f203f203f203f203f20ff20ff206f20ff206f200f206f206f206f200f200f206f20ff203f203f203f203f203f20ff202f206f206f206f206f206f206f206f20ff206f20ff206f206f206f20ff203f203f203f20ff200f20ff200f20ff200f206f206f206f200f200f200f200f206f20ff203f203f203f203f20ff206f206f206f206f206f206f206f206f20ff206f20ff206f206f206f20ff203f203f203f20ff200f200f206f206f206f206f206f206f206f200f200f20ff20ff203f20ff203f203f203f20ff206f206f206f206f206f202f202f206f206f206f206f202f202f206f20ff203f203f203f20ff200f200f206f206f206f206f206f206f200f200f200f200f20ff20ff203f203f203f203f20ff202f206f206f202f206f206f206f206f206f206f206f206f202f206f20ff203f203f203f20ff200f200f206f206f206f206f206f206f206f206f200f206f206f206f20ff203f203f203f203f20ff202f206f20ff206f206f206f206f206f20ff206f206f20ff202f20ff203f203f203f20ff200f20ff206f206f206f206f206f200f200f200f200f200f200f20ff203f203f203f203f203f203f20ff20ff202f206f206f206f206f206f206f206f202f20ff20ff203f203f203f203f203f20ff206f206f206f206f206f206f206f206f200f200f200f206f206f20ff203f203f203f203f203f203f20ff20ff202f202f206f206f206f206f202f20ff20ff203f203f203f203f203f203f20ff20ff20ff20ff206f206f200f200f200f200f206f20ff20ff20ff20ff203f203f203f203f203f20ff202f202f20ff20ff20ff20ff20ff20ff20ff202f202f20ff203f203f203f203f20ff206f200f200f206f20ff206f206f206f206f20ff20ff200f200f200f20ff203f203f203f203f20ff202f202f202f202f202f20ff20ff20ff20ff202f202f202f202f20ff203f203f203f20ff206f200f200f200f206f20ff20ff20ff20ff206f206f200f206f20ff203f203f20cf20cf20cf20cf20ff20ff20ff20ff20ff20cf20cf20cf20ff20ff20ff20ff20ff20cf20cf20cf20cf20cf20ff20ff20ff20ff20ff20cf20cf20cf20cf20ff20ff20ff20ff20cf20cf20cf20cf20cf20cf20cf20cf20cf20cf20cf20cf20cf20cf20cf20cf20cf20cf20cf20cf20cf20cf20cf20cf20c020c020c020c020c020c020c020c020c020c020c020c020c020c020c020c020cf201f201f201f201f201f201f201f201f201f201f201f201f201f201f201f201f201f201f201f201f201f201f201f201f201f201f201f201f201f201f201f201f201f201f201f201f201f201f204f204f204f204f204f204f204f204f204f204f204f204f204f204f204f204f204f204f204f204f204f204f204f204f204f204f204f204f204f204f204f204f204f204f204f204f204f204f")
  31. surf = surface.create(38, 19)
  32. display = surface.create(51, 19)
  33. for i=1,40,1 do
  34.   display:drawText(1, 1, "Visual Demo 1 powered by:")
  35.   display:drawSurface(1, 5, srf)
  36.   display:drawText(1, 18, "By CrazedProgrammer")
  37.   draw()
  38. end
  39. for i=1,200,1 do
  40.   local size = math.floor(14 + math.sin(i / 5) * 5)
  41.   local surf2 = surface.create(size, size)
  42.   surf:fillTriangle(30, 1, math.floor(math.cos(i / 10) * 30 + 15), 19, math.floor(math.cos(i / 10) * 30 + 35), 19, nil, colors.red)
  43.   surf2:drawSurfaceScaled(1, 1, size, size, cp)
  44.   surf:drawSurfaceRotated(9, 10, size / 2, size / 2, i / 15, surf2)
  45.   surf:drawSurfaceRotated(30, 10, size / 2, size / 2, i / 15, surf2)
  46.   surf:fillTriangle(8, 1, math.floor(math.sin(i / 10) * 30 + 3), 19, math.floor(math.sin(i / 10) * 30 + 23), 19, "-", nil, colors.blue)
  47.   draw()
  48. end
  49. for i=18,8,-1 do
  50.   display:drawSurfaceScaled(4, 3, 4 + i - 1, 3 + i - 1, mario)
  51.   draw()
  52. end
  53. for i=1,200,1 do
  54.   surf:clear(nil, 2 ^ (i % 16))
  55.   for j=1,3,1 do
  56.     for k=1,4,1 do
  57.       local sizex = math.floor(5 + math.sin((i + j * 4 + k - 6) / 5) * 2)
  58.       local sizey = math.floor((5 + math.sin((i + j * 4 + k - 6) / 5) * 2) * 4 / 3)
  59.       local surf2 = surface.create(sizex, sizey)
  60.       surf2:drawSurfaceScaled(1, 1, sizex, sizey, mario)
  61.       surf:drawSurfaceRotated(k * 10 - 5, j * 5, sizex / 2, sizey / 2, (i + j * 4 + k - 6) / -10, surf2)
  62.     end
  63.   end
  64.   draw()
  65. end
  66. local surf2 = surface.create(51, 19)
  67. for i=1,200,1 do
  68.   surf2:clear()
  69.   surf2:drawSurfaceRotated(19, 9, 19, 9, math.sin(i / 10) / 2.5, mworld)
  70.   local x1 = math.floor(9 - math.cos(i / 8) * 9)
  71.   local x2 = x1 + 22
  72.   local y1 = math.floor(5 - math.sin(i / 8) * 6)
  73.   local y2 = y1 + 10
  74.   surf2.overwrite = true
  75.   surf2:fillRect(0, 0, x1, 20)
  76.   surf2:fillRect(0, 0, 39, y1)
  77.   surf2:fillRect(0, y2, x2, 20)
  78.   surf2:fillRect(x2, 0, 39, 20)
  79.   surf2.overwrite = false
  80.   surf:drawSurface(1, 1, mworld)
  81.   surf:fillRect(x1, y1, x2, y2, nil, colors.black)
  82.   surf:drawSurface(1, 1, surf2)
  83.   draw()
  84. end
  85. for i=1,100,1 do
  86.   for j=1,19,1 do
  87.     surf:fillRect(1, j, 38, j, nil, 2 ^ math.floor(((i + j) / 5) % 16))
  88.   end
  89.   for j=1,16,1 do
  90.     local x1 = 19 + math.floor(math.cos(i / 10 + j / 16 * math.pi * 2) * 15 + 0.5)
  91.     local y1 = 10 + math.floor(math.sin(i / 10 + j / 16 * math.pi * 2) * 15 + 0.5)
  92.     local x2 = 19 + math.floor(math.cos(i / 10 + (j + 1) / 16 * math.pi * 2) * 15 + 0.5)
  93.     local y2 = 10 + math.floor(math.sin(i / 10 + (j + 1) / 16 * math.pi * 2) * 15 + 0.5)
  94.     surf:fillTriangle(19, 10, x1, y1, x2, y2, nil, 2 ^ (j % 16))
  95.   end
  96.   draw()
  97. end
  98. for i=1,100,1 do
  99.   for j=1,19,1 do
  100.     surf:fillRect(1, j, 38, j, nil, 2 ^ math.floor(((i + j + 100) / 5) % 16))
  101.   end
  102.   for j=1,48,1 do
  103.     local x1 = 19 + math.floor(math.cos(i / 10 + j / 48 * math.pi * 2) * 15 + 0.5)
  104.     local y1 = 10 + math.floor(math.sin(i / 10 + j / 48 * math.pi * 2) * 15 + 0.5)
  105.     local x2 = 19 + math.floor(math.cos(i / 10 + (j + 1) / 48 * math.pi * 2) * 15 + 0.5)
  106.     local y2 = 10 + math.floor(math.sin(i / 10 + (j + 1) / 48 * math.pi * 2) * 15 + 0.5)
  107.     surf:fillTriangle(19, 10, x1, y1, x2, y2, nil, 2 ^ (j % 16))
  108.   end
  109.   draw()
  110. end
  111. surf:drawSurface(1, 1, trans1)
  112. draw()
  113. os.sleep(0.5)
  114. for i=0,10,1 do
  115.   surf:drawSurface(1, 1, trans2)
  116.   for j=1,19,1 do
  117.     for k=1,38,1 do
  118.       if (k % 10) > i then
  119.         surf:drawPixel(k, j, trans1:getPixel(k, j))
  120.       end
  121.     end
  122.   end
  123.   draw()
  124. end
  125. os.sleep(0.2)
  126. for i=0,10,1 do
  127.   surf:drawSurface(1, 1, trans1)
  128.   for j=1,19,1 do
  129.     for k=1,38,1 do
  130.       if (-k % 10) > i then
  131.         surf:drawPixel(k, j, trans2:getPixel(k, j))
  132.       end
  133.     end
  134.   end
  135.   draw()
  136. end
  137. os.sleep(0.2)
  138. for i=0,10,1 do
  139.   surf:drawSurface(1, 1, trans2)
  140.   for j=1,19,1 do
  141.     for k=1,38,1 do
  142.       if ((k - j) % 10) > i then
  143.         surf:drawPixel(k, j, trans1:getPixel(k, j))
  144.       end
  145.     end
  146.   end
  147.   draw()
  148. end
  149. os.sleep(0.2)
  150. for i=0,10,1 do
  151.   surf:drawSurface(1, 1, trans1)
  152.   for j=1,19,1 do
  153.     for k=1,38,1 do
  154.       if ((k + j) % 10) > i then
  155.         surf:drawPixel(k, j, trans2:getPixel(k, j))
  156.       end
  157.     end
  158.   end
  159.   draw()
  160. end
  161. os.sleep(0.2)
  162. for i=0,10,1 do
  163.   surf:drawSurface(1, 1, trans2)
  164.   for j=1,19,1 do
  165.     for k=1,38,1 do
  166.       if ((k * j) % 10) > i then
  167.         surf:drawPixel(k, j, trans1:getPixel(k, j))
  168.       end
  169.     end
  170.   end
  171.   draw()
  172. end
  173. os.sleep(0.2)
  174. for i=0,10,1 do
  175.   surf:drawSurface(1, 1, trans1)
  176.   for j=1,19,1 do
  177.     for k=1,38,1 do
  178.       if ((k / j) % 10) > i then
  179.         surf:drawPixel(k, j, trans2:getPixel(k, j))
  180.       end
  181.     end
  182.   end
  183.   draw()
  184. end
  185. os.sleep(0.2)
  186. for i=0,10,1 do
  187.   surf:drawSurface(1, 1, trans2)
  188.   for j=1,19,1 do
  189.     for k=1,38,1 do
  190.       if (k % 10) > i and j % 2 == 0 then
  191.         surf:drawPixel(k, j, trans1:getPixel(k, j))
  192.       elseif (-k % 10) > i and j % 2 ~= 0 then
  193.         surf:drawPixel(k, j, trans1:getPixel(k, j))
  194.       end
  195.     end
  196.   end
  197.   draw()
  198. end
  199. for i=38,1,-1 do
  200.   local surf2 = surface.create(i, math.floor(i / 2))
  201.   surf2:drawSurfaceScaled(1, 1, i, math.floor(i / 2), trans2)
  202.   surf:drawSurfaceRotated(19, 9, i / 2, i / 4, (38 - i) / 10, surf2)
  203.   draw()
  204. end
  205. for i=0,5,1 do
  206.   display:drawLine(26 - i * 2, 9, 26 + i * 2, 9, nil, colors.white)
  207.   display:drawLine(26, 9 - i, 26, 9 + i, nil, colors.white)
  208.   display:drawLine(26 - i * 2, 9 - i, 26 + i * 2, 9 + i, nil, colors.white)
  209.   display:drawLine(26 + i * 2, 9 - i, 26 - i * 2, 9 + i, nil, colors.white)
  210.   draw()
  211. end
  212. for i=5,0,-1 do
  213.   display:drawLine(26 - i * 2, 9, 26 + i * 2, 9, nil, colors.white)
  214.   display:drawLine(26, 9 - i, 26, 9 + i, nil, colors.white)
  215.   display:drawLine(26 - i * 2, 9 - i, 26 + i * 2, 9 + i, nil, colors.white)
  216.   display:drawLine(26 + i * 2, 9 - i, 26 - i * 2, 9 + i, nil, colors.white)
  217.   draw()
  218. end
  219. local flies = { }
  220. local surf2 = surface.create(51, 19)
  221. for i=1,200,1 do
  222.   table.insert(flies, {x = math.random(51), y = 1, color = 2 ^ (math.random(15) - 1)})
  223.   local j = 1
  224.   while j <= #flies do
  225.     local v = flies[j]
  226.     surf2:drawPixel(v.x, v.y, nil, v.color)
  227.     v.y = v.y + 1
  228.     if v.y > 19 then
  229.       table.remove(flies, j)
  230.       j = j - 1
  231.     end
  232.     j = j + 1
  233.   end
  234.   display:drawSurface(1, 1, surf2)
  235.   draw()
  236. end
  237. flies = { }
  238. for i=1,51,1 do
  239.   while true do
  240.     local r = math.random(51)
  241.     if not flies[r] then
  242.       flies[r] = 1
  243.       break
  244.     end
  245.   end
  246.   for j=1,51,1 do
  247.     if flies[j] then
  248.       surf2:drawPixel(j, flies[j], nil, colors.black)
  249.       flies[j] = flies[j] + 1
  250.     end
  251.   end
  252.   display:drawSurface(1, 1, surf2)
  253.   draw()
  254. end
  255. while true do
  256.   local cont = false
  257.   for i=1,51,1 do
  258.     if flies[i] <= 19 then
  259.       cont = true
  260.       break
  261.     end
  262.   end
  263.   if not cont then
  264.     break
  265.   end
  266.   for j=1,51,1 do
  267.     if flies[j] then
  268.       surf2:drawPixel(j, flies[j], nil, colors.black)
  269.       flies[j] = flies[j] + 1
  270.     end
  271.   end
  272.   display:drawSurface(1, 1, surf2)
  273.   draw()
  274. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement