Advertisement
CrazedProgrammer

Visual Demo 1

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