MudkipTheEpic

ShipWars 1.0 [BROKEN]

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