mac1

Minecraft Nyan Cat computercraft

Mar 14th, 2012
12,409
1
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 5.81 KB | None | 1 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. while true do
  213.     if (math.random(1,6) < 4) then
  214.         Addstar()
  215.         end
  216.     MoveStar()
  217.     RenderStar()
  218.     DrawCat()
  219.     sleep(0.05)
  220.     end
Advertisement
Add Comment
Please, Sign In to add comment