xXm0dzXx

MOAAAAHCOILAAAAAH

Nov 11th, 2012
315
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.60 KB | None | 0 0
  1. -- © Marcel Märtens, Germany 2012
  2. -- Please do not remove this hint. Thank you.
  3.  
  4. -- Diese Datei steht unter der Creative Commons Lizenz für Namensnennung-Weitergabe unter gleichen Bedingungen 3.0 Deutschland (CC BY-SA 3.0)
  5. -- Besuchen sie die folgende Website für weitere Informationen: http://creativecommons.org/licenses/by-sa/3.0/de/
  6. -- website in english http://creativecommons.org/licenses/by-sa/3.0/
  7.  
  8.  
  9. term.clear()
  10. term.setCursorPos(1,1)
  11. --while true do mTask.RunFile("/marcelOS/programs/vlc","/examples/evlc2") end
  12.  
  13. local star = {}
  14. star.__index = star
  15.  
  16. local minX = 1
  17. local maxX = 10
  18. local monWidth, monHeight = term.getSize()
  19.  
  20. function star.create()
  21. local acnt = {}
  22. setmetatable(acnt,star)
  23.  
  24. mx = math.floor(monWidth+2)
  25. my = math.floor(math.random(1,monHeight))
  26.  
  27. acnt.x = mx
  28. acnt.y = my
  29. acnt.speed = math.floor(math.random(1,4))
  30. acnt.pos =math.floor(math.random(minX,maxX))
  31. return acnt
  32. end
  33.  
  34. function rawWriteLoc(x,y,sText)
  35. term.setCursorPos(x,y)
  36. term.write(sText)
  37. end
  38.  
  39. function star:clear()
  40. if self.pos == 1 then
  41. rawWriteLoc(self.x,self.y," ")
  42. elseif (self.pos == 2) or (self.pos == 3) or (self.pos == 4) or (self.pos == 8) or (self.pos == 9) or (self.pos == 10) then
  43.  
  44. rawWriteLoc(self.x-1,self.y-1," ")
  45. rawWriteLoc(self.x-1,self.y, " ")
  46. rawWriteLoc(self.x-1,self.y+1," ")
  47. elseif (self.pos == 5) or (self.pos == 6) or (self.pos == 7) then
  48.  
  49. rawWriteLoc(self.x-2,self.y-2," ")
  50. rawWriteLoc(self.x-2,self.y-1," ")
  51. rawWriteLoc(self.x-2,self.y, " ")
  52. rawWriteLoc(self.x-2,self.y+1," ")
  53. rawWriteLoc(self.x-2,self.y+2," ")
  54. end
  55. end
  56.  
  57. function star:draw()
  58. if self.pos == 1 then
  59. rawWriteLoc(self.x,self.y,"+")
  60. elseif self.pos == 2 then
  61.  
  62. rawWriteLoc(self.x-1,self.y-1," | ")
  63. rawWriteLoc(self.x-1,self.y, "-+-")
  64. rawWriteLoc(self.x-1,self.y+1," | ")
  65. elseif self.pos == 3 then
  66.  
  67. rawWriteLoc(self.x-1,self.y-1," | ")
  68. rawWriteLoc(self.x-1,self.y, "- -")
  69. rawWriteLoc(self.x-1,self.y+1," | ")
  70.  
  71. elseif self.pos == 4 then
  72.  
  73. rawWriteLoc(self.x-1,self.y-1,"/-\\")
  74. rawWriteLoc(self.x-1,self.y, "| |")
  75. rawWriteLoc(self.x-1,self.y+1,"\\-/")
  76.  
  77. elseif self.pos == 5 then
  78.  
  79. rawWriteLoc(self.x-2,self.y-2," | ")
  80. rawWriteLoc(self.x-2,self.y-1," / \\ ")
  81. rawWriteLoc(self.x-2,self.y, "- -")
  82. rawWriteLoc(self.x-2,self.y+1," \\ / ")
  83. rawWriteLoc(self.x-2,self.y+2," | ")
  84.  
  85. elseif self.pos == 6 then
  86.  
  87. rawWriteLoc(self.x-2,self.y-2," /-\\ ")
  88. rawWriteLoc(self.x-2,self.y-1,"/ \\")
  89. rawWriteLoc(self.x-2,self.y, "| |")
  90. rawWriteLoc(self.x-2,self.y+1,"\\ /")
  91. rawWriteLoc(self.x-2,self.y+2," \\-/ ")
  92.  
  93. elseif self.pos == 7 then
  94.  
  95. rawWriteLoc(self.x-2,self.y-2," | ")
  96. rawWriteLoc(self.x-2,self.y-1," / \\ ")
  97. rawWriteLoc(self.x-2,self.y, "- -")
  98. rawWriteLoc(self.x-2,self.y+1," \\ / ")
  99. rawWriteLoc(self.x-2,self.y+2," | ")
  100.  
  101. elseif self.pos == 8 then
  102.  
  103. rawWriteLoc(self.x-1,self.y-1,"/-\\")
  104. rawWriteLoc(self.x-1,self.y, "| |")
  105. rawWriteLoc(self.x-1,self.y+1,"\\-/")
  106.  
  107. elseif self.pos == 9 then
  108.  
  109. rawWriteLoc(self.x-1,self.y-1," | ")
  110. rawWriteLoc(self.x-1,self.y, "- -")
  111. rawWriteLoc(self.x-1,self.y+1," | ")
  112.  
  113. elseif self.pos == 10 then
  114.  
  115. rawWriteLoc(self.x-1,self.y-1," | ")
  116. rawWriteLoc(self.x-1,self.y, "-+-")
  117. rawWriteLoc(self.x-1,self.y+1," | ")
  118. end
  119. end
  120.  
  121. function star:move()
  122. self.x = self.x - self.speed
  123. return self.x > -4
  124. end
  125.  
  126. function Addstar()
  127. local new = star.create()
  128. local x = #star+1
  129. star[x] = new
  130. return new,x
  131. end
  132.  
  133. function RenderStar()
  134. local i,w = 1
  135. for i,w in ipairs(star) do
  136. w:draw()
  137. end
  138. end
  139.  
  140. function MoveStar()
  141. local i,w = 1
  142. for i,w in ipairs(star) do
  143. w:clear()
  144. if (math.random(1,6) < 4) then
  145. w.pos = w.pos +1
  146. if w.pos > maxX then w.pos = minX end
  147. end
  148. if not w:move() then
  149. star[i] = star[#star]
  150. star[#star] = nil
  151. end
  152. end
  153. end
  154.  
  155. local catnr = 1
  156. local catmax = 6
  157. local catmin = 1
  158. local catx = 0
  159. local caty = math.floor((monHeight-4)/2)
  160.  
  161.  
  162. function DrawCat()
  163. if catnr == 1 then
  164.  
  165. rawWriteLoc(catx,caty, "--.__.--.__.--.__.--,------, ")
  166. rawWriteLoc(catx,caty+1,"--.__.--.__.--.__.--| /\\_/\\ ")
  167. rawWriteLoc(catx,caty+2,"--.__.--.__.--.__.-~|__( ^ .^)")
  168. rawWriteLoc(catx,caty+3,"--.__.--.__.--.__.--\"\" \"\" ")
  169.  
  170. elseif catnr == 2 then
  171.  
  172. rawWriteLoc(catx,caty, "-.__.--.__.--.__.--.,------, ")
  173. rawWriteLoc(catx,caty+1,"-.__.--.__.--.__.--.| /\\_/\\ ")
  174. rawWriteLoc(catx,caty+2,"-.__.--.__.--.__.--~|__( ^ .^)")
  175. rawWriteLoc(catx,caty+3,"-.__.--.__.--.__.--. \"\" \"\" ")
  176.  
  177. elseif catnr == 3 then
  178.  
  179. rawWriteLoc(catx,caty, ".__.--.__.--.__.--._,------, ")
  180. rawWriteLoc(catx,caty+1,".__.--.__.--.__.--._| /\\_/\\ ")
  181. rawWriteLoc(catx,caty+2,".__.--.__.--.__.--.~|__( ^ .^)")
  182. rawWriteLoc(catx,caty+3,".__.--.__.--.__.--._ \"\" \"\" ")
  183.  
  184. elseif catnr == 4 then
  185.  
  186. rawWriteLoc(catx,caty, "__.--.__.--.__.--.__,------, ")
  187. rawWriteLoc(catx,caty+1,"__.--.__.--.__.--.__| /\\_/\\ ")
  188. rawWriteLoc(catx,caty+2,"__.--.__.--.__.--._~|__( ^ .^)")
  189. rawWriteLoc(catx,caty+3,"__.--.__.--.__.--.__ \"\" \"\" ")
  190.  
  191. elseif catnr == 5 then
  192.  
  193. rawWriteLoc(catx,caty, "_.--.__.--.__.--.__.,------, ")
  194. rawWriteLoc(catx,caty+1,"_.--.__.--.__.--.__.| /\\_/\\ ")
  195. rawWriteLoc(catx,caty+2,"_.--.__.--.__.--.__~|__( ^ .^)")
  196. rawWriteLoc(catx,caty+3,"_.--.__.--.__.--.__.\"\" \"\" ")
  197.  
  198. elseif catnr == 6 then
  199.  
  200. rawWriteLoc(catx,caty, ".--.__.--.__.--.__.-,------, ")
  201. rawWriteLoc(catx,caty+1,".--.__.--.__.--.__.-| /\\_/\\ ")
  202. rawWriteLoc(catx,caty+2,".--.__.--.__.--.__.~|__( ^ .^)")
  203. rawWriteLoc(catx,caty+3,".--.__.--.__.--.__.-\"\" \"\" ")
  204.  
  205. end
  206.  
  207.  
  208. catnr = catnr + 1
  209. if catnr > catmax then catnr = catmin end
  210. end
  211.  
  212. term.setBackgroundColour( colors.blue )
  213. term.clear()
  214. term.setCursorPos(1,1)
  215. print("WARNING")
  216. print("\nThis program may contain excessive flashing lights. Do not watch if you are prone to seizures.")
  217. sleep(5)
  218. local oldw = term.write
  219.  
  220. function term.write(txt)
  221. for i=1,#txt do
  222. str = string.sub( txt, i, i )
  223. term.setTextColor(2^math.random(1, 16)/2)
  224. oldw(str)
  225. end
  226. end
  227.  
  228. move = os.startTimer( 0.05 )
  229. while true do
  230. function redrawAll()
  231. if math.random(1,6) == 6 then
  232. term.setBackgroundColour( 2^math.random(1, 16)/2 )
  233. end
  234. term.clear()
  235. if (math.random(1,6) < 4) then
  236. Addstar()
  237. end
  238. MoveStar()
  239. RenderStar()
  240. DrawCat()
  241. end
  242.  
  243. local event, key = os.pullEvent()
  244. if event == "timer" and key == move then
  245. redrawAll()
  246. move = os.startTimer( 0.05 )
  247. elseif event == "key" and key == keys.up then
  248. caty = caty -1
  249. elseif event == "key" and key == keys.down then
  250. caty = caty +1
  251. end
  252. end
Advertisement
Add Comment
Please, Sign In to add comment