Advertisement
MudkipTheEpic

ShipWars Beta

Feb 19th, 2013
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.81 KB | None | 0 0
  1. local tcolors={colors.magenta, colors.yellow, colors.red, colors.green, colors.purple, colors.lightBlue, colors.black}
  2. local score=0
  3. local oScore=0
  4. local lasers={}
  5. local xSize, ySize= term.getSize()
  6. local yLimit1=2
  7. local yLimit2=ySize-4
  8. local xLimit1=1
  9. local xLimit2=xSize-3
  10. local derp=string.rep(" ", xSize)
  11.  
  12. --[[
  13. print(xLimit1)
  14. print(xLimit2)
  15. print(yLimit1)
  16. print(yLimit2)
  17. sleep(1)
  18. --]]
  19.  
  20. local function shootLaser(num)
  21. if num == 1 then
  22. local laser=gameutils.loadSprite("/laser.nfp",7,player.y+2)
  23. laser.direction=1
  24. table.insert(lasers,laser)
  25. else
  26. local laser=gameutils.loadSprite("/laser.nfp",Tplayer.x-10,Tplayer.y+2)
  27. laser.direction=-1
  28. table.insert(lasers,laser)
  29. end
  30. os.queueEvent("laserupdate")
  31. sleep(0.25)
  32. end
  33.  
  34. local function doLasers()
  35. while true do
  36. for k,v in pairs(lasers) do
  37. if v:rCollidesWith(player) then oScore=oScore+1 local derp=true break end
  38. elseif v:rCollidesWith(Tplayer) then score=score+1 local derp=true break
  39. end
  40. elseif (v.x=xLimit1 and v.direction=-1) or (v.x=xLimit2 and v.direction=1) then
  41. table.remove(lasers,k)
  42. else
  43. v.x=v.x+v.direction
  44. end
  45. os.queueEvent("update")
  46. if derp then return true end
  47. end
  48. end
  49.  
  50.  
  51. local function cPrint(text)
  52. local w,h=term.getSize()
  53. local x,y=term.getCursorPos()
  54. term.setCursorPos(math.ceil((w + 1)/2 - text:len()/2), y)
  55. print(text)
  56. return true
  57. end
  58.  
  59. os.loadAPI("gameutils")
  60. local player=gameutils.loadSprite("/ship.nfp", 1,2 )
  61. local Tplayer=gameutils.loadSprite("/ship2.nfp",xSize-5,2)
  62. gameutils.initializeBuffer()
  63. function drawplayers()
  64. while true do
  65. local color=colors.black
  66. gameutils.clearBuffer(color)
  67. gameutils.writeToBuffer(player)
  68. gameutils.writeToBuffer(Tplayer)
  69. for k,v in pairs(lasers) do
  70. gameutils.writeToBuffer(lasers.v)
  71. end
  72. gameutils.drawBuffer()
  73. term.setCursorPos(1,1)
  74. term.setBackgroundColor(colors.gray)
  75. print(derp)
  76. term.setCursorPos(1,1)
  77. term.setTextColor(1)
  78. cPrint(score.." to "..oScore)
  79. local t=os.startTimer(0.5)
  80. os.queueEvent("laserupdate")
  81. repeat
  82. local ev =os.pullEventRaw()
  83. until ev=="update"
  84. end
  85. end
  86. local function moveplayers()
  87. while true do
  88. local event, key=os.pullEventRaw("key")
  89. if key==keys.w then
  90. if player.y > yLimit1 then
  91. player.y=player.y-1
  92. os.queueEvent("update")
  93. end
  94. elseif key==keys.s then
  95. if player.y < yLimit2 then
  96. player.y=player.y+1
  97. os.queueEvent("update")
  98. end
  99. elseif key==keys.up then
  100. if Tplayer.y > yLimit1 then
  101. Tplayer.y=Tplayer.y-1
  102. os.queueEvent("update")
  103. end
  104. elseif key==keys.down then
  105. if Tplayer.y < yLimit2 then
  106. Tplayer.y=Tplayer.y+1
  107. os.queueEvent("update")
  108. end
  109. end
  110. end
  111. end
  112. local function displayScore()
  113. term.clear()
  114. term.setBackgroundColor(colors.red)
  115. for i=1, ySize do
  116. term.setCursorPos(1,i)
  117. print(derp)
  118. end
  119. term.setTextColor(white)
  120. term.setCursorPos(1,math.floor(ySize/2))
  121. cPrint(score.." to "..oScore)
  122. end
  123. parallel.waitForAny(moveplayers, drawplayers)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement