Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local tcolors={colors.magenta, colors.yellow, colors.red, colors.green, colors.purple, colors.lightBlue, colors.black}
- local score=0
- local oScore=0
- local lasers={}
- local xSize, ySize= term.getSize()
- local yLimit1=2
- local yLimit2=ySize-4
- local xLimit1=1
- local xLimit2=xSize-3
- local derp=string.rep(" ", xSize)
- --[[
- print(xLimit1)
- print(xLimit2)
- print(yLimit1)
- print(yLimit2)
- sleep(1)
- --]]
- local function shootLaser(num)
- if num == 1 then
- local laser=gameutils.loadSprite("/laser.nfp",7,player.y+2)
- laser.direction=1
- table.insert(lasers,laser)
- else
- local laser=gameutils.loadSprite("/laser.nfp",Tplayer.x-10,Tplayer.y+2)
- laser.direction=-1
- table.insert(lasers,laser)
- end
- os.queueEvent("laserupdate")
- sleep(0.25)
- end
- local function doLasers()
- while true do
- for k,v in pairs(lasers) do
- if v:rCollidesWith(player) then oScore=oScore+1 local derp=true break end
- elseif v:rCollidesWith(Tplayer) then score=score+1 local derp=true break
- end
- elseif (v.x=xLimit1 and v.direction=-1) or (v.x=xLimit2 and v.direction=1) then
- table.remove(lasers,k)
- else
- v.x=v.x+v.direction
- end
- os.queueEvent("update")
- if derp then return true end
- end
- end
- local function cPrint(text)
- local w,h=term.getSize()
- local x,y=term.getCursorPos()
- term.setCursorPos(math.ceil((w + 1)/2 - text:len()/2), y)
- print(text)
- return true
- end
- os.loadAPI("gameutils")
- local player=gameutils.loadSprite("/ship.nfp", 1,2 )
- local Tplayer=gameutils.loadSprite("/ship2.nfp",xSize-5,2)
- gameutils.initializeBuffer()
- function drawplayers()
- while true do
- local color=colors.black
- gameutils.clearBuffer(color)
- gameutils.writeToBuffer(player)
- gameutils.writeToBuffer(Tplayer)
- for k,v in pairs(lasers) do
- gameutils.writeToBuffer(lasers.v)
- end
- gameutils.drawBuffer()
- term.setCursorPos(1,1)
- term.setBackgroundColor(colors.gray)
- print(derp)
- term.setCursorPos(1,1)
- term.setTextColor(1)
- cPrint(score.." to "..oScore)
- local t=os.startTimer(0.5)
- os.queueEvent("laserupdate")
- repeat
- local ev =os.pullEventRaw()
- until ev=="update"
- end
- end
- local function moveplayers()
- while true do
- local event, key=os.pullEventRaw("key")
- if key==keys.w then
- if player.y > yLimit1 then
- player.y=player.y-1
- os.queueEvent("update")
- end
- elseif key==keys.s then
- if player.y < yLimit2 then
- player.y=player.y+1
- os.queueEvent("update")
- end
- elseif key==keys.up then
- if Tplayer.y > yLimit1 then
- Tplayer.y=Tplayer.y-1
- os.queueEvent("update")
- end
- elseif key==keys.down then
- if Tplayer.y < yLimit2 then
- Tplayer.y=Tplayer.y+1
- os.queueEvent("update")
- end
- end
- end
- end
- local function displayScore()
- term.clear()
- term.setBackgroundColor(colors.red)
- for i=1, ySize do
- term.setCursorPos(1,i)
- print(derp)
- end
- term.setTextColor(white)
- term.setCursorPos(1,math.floor(ySize/2))
- cPrint(score.." to "..oScore)
- end
- parallel.waitForAny(moveplayers, drawplayers)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement