Advertisement
Guest User

newgame.lua

a guest
Oct 17th, 2023
41
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 4.28 KB | None | 0 0
  1. local lgamec = require("lgamec")
  2. lgamec.setup("right")
  3. lgamec.fillScreen(colors.black)
  4. lgamec.lggSetDefBG(colors.black)
  5. scene = lgamec.createScene(1,1,lgamec.getSize().x,lgamec.getSize().y,false)
  6. scene:draw()
  7. scene:fillScreen(colors.white)
  8. scene:drawText(2,2,colors.black,colors.white," RACING GAME | TIMUZKAS")
  9. scene:drawBT("start",2,20,5,8,colors.white,colors.black," Start")
  10. while true do
  11.   local event, button, x, y = os.pullEvent( "mouse_click" )
  12.   if scene:isButton(x,y) == "start" then
  13.     scene:hide()
  14.     break
  15.   else
  16.   end
  17. end
  18. game  = lgamec.createScene(1,1,lgamec.getSize().x,lgamec.getSize().y)
  19. game:fillScreen(colors.brown)
  20. game:drawSprite("road",2,1,shell.dir().."/road.nfp")
  21. cary = lgamec.getSize().y-5
  22. game:drawSprite("car",12,cary,shell.dir().."/car.nfp")
  23. lanel = {12,25,38}
  24. lane  = 1
  25. function control()
  26. while true do
  27.   local event, key = os.pullEvent("key")
  28.   if key == keys.d then
  29.     if lane < 3 then
  30.       lane = lane + 1
  31.     end
  32.   elseif key == keys.a then  
  33.     if lane > 1 then
  34.         lane = lane - 1
  35.       end
  36.   end
  37. end
  38. end
  39. function loosef()
  40.     game:hide()
  41.     lgamec.fillScreen(colors.red)
  42.     lgamec.drawText(1,lgamec.getSize().y/2,colors.white,colors.red,"YOU DIED!")
  43.     os.sleep(1)
  44.     lgamec.clear()
  45.     lgamec.setCursorPos(1,1)
  46.     end
  47. function winf()
  48.         game:hide()
  49.         lgamec.fillScreen(colors.green)
  50.         lgamec.drawText(1,lgamec.getSize().y/2,colors.white,colors.red,"YOU WON!")
  51.         os.sleep(1)
  52.         lgamec.clear()
  53.         lgamec.setCursorPos(1,1)
  54. end
  55. lanes2 = {t1 = {16,16,1515,14,14,13,13,12,12},
  56.     t2 = {26,26,26,26,26,26,26,26,26,26},
  57.     t3 = {34,35,35,36,36,37,37,38,38,39}}
  58. inlane = {16,30,41}
  59. function drawIndicator(linen,line,slt)
  60.     for i=1,5 do
  61.     game:moveSprite("in"..linen,inlane[line],2,false)
  62.     os.sleep(slt)    
  63.     end
  64. end
  65. game:drawSprite("car2",lanes2["t1"][1],5,"car2.nfp")
  66. local ii = 2
  67. sleept = 0.8
  68. score = 0
  69. local l2 = "t1"
  70. loose = false
  71. lvl = 1
  72. function gamef()
  73.   while true do
  74.   ii = ii + 1
  75.   game:moveSprite("car2",lanes2[l2][ii],2+ii,true)
  76.   game:moveSprite("car",lanel[lane],cary,true)
  77.   lgamec.fillScreen(colors.brown)
  78.   game:moveSprite("road",2,1)
  79.   game:moveSprite("car2",lanes2[l2][ii],2+ii)
  80.   game:moveSprite("car",lanel[lane],cary)
  81.   game:drawText(1,lgamec.getSize().y,colors.black,colors.white,"SCORE: "..score.." | LVL: "..lvl.." | "..sleept)
  82.   os.sleep(sleept)
  83.   if (ii == 9) then
  84.     if game:isColiding("car","car2") then
  85.         loose = true
  86.         break
  87.     else
  88.       ii = 2
  89.       nl2 = math.random(1,3)
  90.       l2 = "t"..tostring(nl2)
  91.       if (sleept < 0.2) then
  92.          sleept = 0  
  93.       else
  94.       sleept = sleept - 0.2
  95.       end
  96.       score = score + 1
  97.       if (sleept == 0 ) then
  98.         break  
  99.       end
  100.     end
  101.   end
  102.   end
  103. end
  104. parallel.waitForAny(gamef,control)
  105. game:drawSprite("car3",lanes2["t3"][1],5,shell.dir().."/car2.nfp")
  106. function gamef2()
  107.     local ii = 2
  108.     sleept = 0.8
  109.     local l2 = "t1"
  110.     local l22 = "t3"
  111.     loose = false
  112.     while true do
  113.     ii = ii + 1
  114.     game:moveSprite("car2",lanes2[l2][ii],2+ii,true)
  115.     game:moveSprite("car3",lanes2[l22][ii],2+ii,true)
  116.     game:moveSprite("car",lanel[lane],cary,true)
  117.     lgamec.fillScreen(colors.brown)
  118.     game:moveSprite("road",2,1)
  119.     game:moveSprite("car2",lanes2[l2][ii],2+ii)
  120.     game:moveSprite("car2",lanes2[l22][ii],2+ii)
  121.     game:moveSprite("car",lanel[lane],cary)
  122.     game:drawText(1,lgamec.getSize().y,colors.black,colors.white,"SCORE: "..score.." | LVL: "..lvl)
  123.     os.sleep(sleept)
  124.     if (ii == 9) then
  125.       if game:isColiding("car","car2") or game:isColiding("car","car3") then
  126.           loose = true
  127.           break
  128.       else
  129.         ii = 2
  130.         nl2 = math.random(1,3)
  131.         l2 = "t"..tostring(nl2)
  132.         repeat
  133.             nl22 = math.random(1,3)
  134.             l22 = "t"..tostring(l22)
  135.         until l22 ~= l2
  136.         if (sleept < 0.21) then
  137.             sleept = 0  
  138.         else
  139.           sleept = sleept - 0.2
  140.         end
  141.         score = score + 1
  142.         if (sleept == 0 ) then
  143.           break  
  144.         end
  145.       end
  146.     end
  147.     end
  148.   end
  149. if loose then
  150.     loosef()
  151. else
  152.     lvl = 2
  153.     parallel.waitForAny(gamef2,control)
  154.     if (loose) then
  155.         loosef()
  156.     else
  157.         winf()
  158.     end
  159. end
  160. lgamec.exit()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement