home *** CD-ROM | disk | FTP | other *** search
/ 100 Plus Great Games 2 / 100PLUSV2.BIN / games / Labyrinth.dxr / 00003_Main.ls < prev    next >
Encoding:
Text File  |  2002-01-25  |  16.1 KB  |  521 lines

  1. property pTempX, pTempY, pFrameCount, pEmptyAlpha, pViewPortal, pViewRect, pMouseOffset, pSpace, pSpaceStart, pForPower, pTimeLimit, pATimer, pCheck, pLastTimer, pLevelList, pMoveSound
  2. global gCurrentLevel, gLevelScore, gTotalScore, gWon, gMapChannel, gNumLives, pEneObject, pEneObject2, pEneObject3, pAntObject
  3.  
  4. on new me
  5.   pMoveSound = 0
  6.   pLevelList = [0]
  7.   pLastTimer = the ticks
  8.   pCheck = 1
  9.   pATimer = the ticks
  10.   pForPower = 48
  11.   sprite(20).blend = 100
  12.   pSpace = 0
  13.   pEnter = 0
  14.   gCurrentLevel = gCurrentLevel + 1
  15.   loadLevelData(gCurrentLevel)
  16.   member("TotalScoreDisplay").text = "Score:" && string(gTotalScore)
  17.   sprite(249).blend = 100
  18.   doFadeOut()
  19.   doFinishIntro()
  20. end
  21.  
  22. on exitFrame me
  23.   if gCurrentLevel >= 5 then
  24.     pEneObject.moveEnemy()
  25.   end if
  26.   if gCurrentLevel >= 4 then
  27.     pEneObject2.moveEnemy()
  28.   end if
  29.   if gCurrentLevel >= 3 then
  30.     pEneObject3.moveEnemy()
  31.   end if
  32.   if pAntObject.pDoDeath = 0 then
  33.     checkInput()
  34.   else
  35.     pAntObject.doDeathAnimation()
  36.   end if
  37.   if sprite(23).intersects(35) or sprite(23).intersects(36) or sprite(23).intersects(37) then
  38.     pAntObject.pDoDeath = 1
  39.     member("ScoreDisplay").text = "Your Score:" && string(gTotalScore)
  40.   end if
  41.   if (pATimer + 60) < the ticks then
  42.     pATimer = the ticks
  43.     pTimeLimit = pTimeLimit + 1
  44.     displayTime(pTimeLimit)
  45.   end if
  46.   if sprite(23).intersects(18) then
  47.     puppetSound(1, 0)
  48.     sprite(35).puppet = 0
  49.     sprite(36).puppet = 0
  50.     sprite(37).puppet = 0
  51.     if gCurrentLevel >= 5 then
  52.       go(19)
  53.       gTotalScore = gTotalScore + 50 + (1500 / pTimeLimit)
  54.       member("ScoreDisplay").text = "Your Score:" && string(integer(gTotalScore))
  55.       member("WinOrLose").text = "You Win!!"
  56.       puppetSound(5, "win10")
  57.     else
  58.       go(39)
  59.       gTotalScore = gTotalScore + 50 + (1500 / pTimeLimit)
  60.       member("ScoreDisplay").text = "Your Score:" && string(integer(gTotalScore))
  61.       member("timeLeftDisplay").text = "Time:" && member("timeDisplay").text
  62.       puppetSound(5, "levelcomplete10")
  63.     end if
  64.   else
  65.     sprite(101).puppet = 0
  66.   end if
  67.   go(the frame)
  68. end
  69.  
  70. on checkInput
  71.   antDirection = pAntObject.getAntDirection()
  72.   if keyPressed(126) and keyPressed(123) then
  73.     if pMoveSound = 0 then
  74.       pMoveSound = 1
  75.       puppetSound(1, "move loop")
  76.     end if
  77.     if antDirection = 5 then
  78.       pAntObject.moveAnt()
  79.     else
  80.       pAntObject.setAntDirection(5)
  81.     end if
  82.   else
  83.     if keyPressed(126) and keyPressed(124) then
  84.       if pMoveSound = 0 then
  85.         pMoveSound = 1
  86.         puppetSound(1, "move loop")
  87.       end if
  88.       if antDirection = 6 then
  89.         pAntObject.moveAnt()
  90.       else
  91.         pAntObject.setAntDirection(6)
  92.       end if
  93.     else
  94.       if keyPressed(125) and keyPressed(123) then
  95.         if pMoveSound = 0 then
  96.           pMoveSound = 1
  97.           puppetSound(1, "move loop")
  98.         end if
  99.         if antDirection = 7 then
  100.           pAntObject.moveAnt()
  101.         else
  102.           pAntObject.setAntDirection(7)
  103.         end if
  104.       else
  105.         if keyPressed(125) and keyPressed(124) then
  106.           if pMoveSound = 0 then
  107.             pMoveSound = 1
  108.             puppetSound(1, "move loop")
  109.           end if
  110.           if antDirection = 8 then
  111.             pAntObject.moveAnt()
  112.           else
  113.             pAntObject.setAntDirection(8)
  114.           end if
  115.         else
  116.           if keyPressed(123) then
  117.             if pMoveSound = 0 then
  118.               pMoveSound = 1
  119.               puppetSound(1, "move loop")
  120.             end if
  121.             if antDirection = 4 then
  122.               pAntObject.moveAnt()
  123.             else
  124.               pAntObject.setAntDirection(4)
  125.             end if
  126.           else
  127.             if keyPressed(124) then
  128.               if pMoveSound = 0 then
  129.                 pMoveSound = 1
  130.                 puppetSound(1, "move loop")
  131.               end if
  132.               if antDirection = 2 then
  133.                 pAntObject.moveAnt()
  134.               else
  135.                 pAntObject.setAntDirection(2)
  136.               end if
  137.             else
  138.               if keyPressed(126) then
  139.                 if pMoveSound = 0 then
  140.                   pMoveSound = 1
  141.                   puppetSound(1, "move loop")
  142.                 end if
  143.                 if antDirection = 1 then
  144.                   pAntObject.moveAnt()
  145.                 else
  146.                   pAntObject.setAntDirection(1)
  147.                 end if
  148.               else
  149.                 if keyPressed(125) then
  150.                   if pMoveSound = 0 then
  151.                     pMoveSound = 1
  152.                     puppetSound(1, "move loop")
  153.                   end if
  154.                   if antDirection = 3 then
  155.                     pAntObject.moveAnt()
  156.                   else
  157.                     pAntObject.setAntDirection(3)
  158.                   end if
  159.                 else
  160.                   if pMoveSound = 1 then
  161.                     pMoveSound = 0
  162.                     puppetSound(1, 0)
  163.                   end if
  164.                 end if
  165.               end if
  166.             end if
  167.           end if
  168.         end if
  169.       end if
  170.     end if
  171.   end if
  172. end
  173.  
  174. on loadLevelData levelNum
  175.   sprite(35).puppet = 0
  176.   sprite(36).puppet = 0
  177.   sprite(37).puppet = 0
  178.   doRandLevel(levelNum)
  179.   member("LevelDisplay").text = "Level" && string(levelNum)
  180.   pTimeLimit = 0
  181.   case levelNum of
  182.     1:
  183.       set the stageColor to 204
  184.       sprite(29).foreColor = 204
  185.       member("TimeDisplay").color = rgb(2, 243, 252)
  186.       member("LevelDisplay").color = rgb(2, 243, 252)
  187.       member("TotalScoreDisplay").color = rgb(2, 243, 252)
  188.     2:
  189.       set the stageColor to 204
  190.       sprite(29).foreColor = 204
  191.       member("TimeDisplay").color = rgb(2, 243, 252)
  192.       member("LevelDisplay").color = rgb(2, 243, 252)
  193.       member("TotalScoreDisplay").color = rgb(2, 243, 252)
  194.     3:
  195.       set the stageColor to 204
  196.       sprite(29).foreColor = 204
  197.       member("TimeDisplay").color = rgb(2, 243, 252)
  198.       member("LevelDisplay").color = rgb(2, 243, 252)
  199.       member("TotalScoreDisplay").color = rgb(2, 243, 252)
  200.     4:
  201.       set the stageColor to 204
  202.       sprite(29).foreColor = 204
  203.       member("TimeDisplay").color = rgb(2, 243, 252)
  204.       member("LevelDisplay").color = rgb(2, 243, 252)
  205.       member("TotalScoreDisplay").color = rgb(2, 243, 252)
  206.     5:
  207.       set the stageColor to 204
  208.       sprite(29).foreColor = 204
  209.       member("TimeDisplay").color = rgb(2, 243, 252)
  210.       member("LevelDisplay").color = rgb(2, 243, 252)
  211.       member("TotalScoreDisplay").color = rgb(2, 243, 252)
  212.   end case
  213.   displayTime(pTimeLimit)
  214.   sprite(23).width = 8
  215.   sprite(23).height = 8
  216.   sprite(35).width = 8
  217.   sprite(35).height = 8
  218.   sprite(36).width = 8
  219.   sprite(36).height = 8
  220.   sprite(37).width = 8
  221.   sprite(37).height = 8
  222. end
  223.  
  224. on doRandLevel levelNum
  225.   found = 0
  226.   repeat while found = 0
  227.     nextLevel = random(11)
  228.     if getOne(pLevelList, nextLevel) = 0 then
  229.       append(pLevelList, nextLevel)
  230.       found = 1
  231.       next repeat
  232.     end if
  233.     found = 0
  234.   end repeat
  235.   sprite(35).loc = point(800, 800)
  236.   sprite(36).loc = point(800, 800)
  237.   sprite(37).loc = point(800, 800)
  238.   case nextLevel of
  239.     1:
  240.       sprite(7).member = "Alpha1"
  241.       pAntObject = new(script("AntScript"), 1, 6, 5, 238, 20, 23)
  242.       sprite(18).loc = point(142, 406)
  243.       if levelNum >= 5 then
  244.         pEneObject = new(script("EnemyScript"), 1, 3, 5, 200, 200, "ninja1", 35)
  245.       end if
  246.       if levelNum >= 4 then
  247.         pEneObject2 = new(script("EnemyScript"), 1, 3, 5, 405, 105, "ninja2", 36)
  248.       end if
  249.       if levelNum >= 3 then
  250.         pEneObject3 = new(script("EnemyScript"), 1, 3, 5, 405, 395, "ninja3", 37)
  251.       end if
  252.     2:
  253.       sprite(7).member = "Alpha2"
  254.       pAntObject = new(script("AntScript"), 1, 6, 5, 310, 10, 23)
  255.       sprite(18).loc = point(383, 406)
  256.       if levelNum >= 5 then
  257.         pEneObject = new(script("EnemyScript"), 1, 3, 5, 300, 250, "ninja1", 35)
  258.       end if
  259.       if levelNum >= 4 then
  260.         pEneObject2 = new(script("EnemyScript"), 1, 3, 5, 240, 305, "ninja2", 36)
  261.       end if
  262.       if levelNum >= 3 then
  263.         pEneObject3 = new(script("EnemyScript"), 1, 3, 5, 405, 390, "ninja3", 37)
  264.       end if
  265.     3:
  266.       sprite(7).member = "Alpha3"
  267.       pAntObject = new(script("AntScript"), 1, 6, 5, 215, 10, 23)
  268.       sprite(18).loc = point(345, 406)
  269.       if levelNum >= 5 then
  270.         pEneObject = new(script("EnemyScript"), 1, 3, 5, 200, 200, "ninja1", 35)
  271.       end if
  272.       if levelNum >= 4 then
  273.         pEneObject2 = new(script("EnemyScript"), 1, 3, 5, 105, 400, "ninja2", 36)
  274.       end if
  275.       if levelNum >= 3 then
  276.         pEneObject3 = new(script("EnemyScript"), 1, 3, 5, 405, 400, "ninja3", 37)
  277.       end if
  278.     4:
  279.       sprite(7).member = "Alpha4"
  280.       pAntObject = new(script("AntScript"), 1, 6, 5, 94, 20, 23)
  281.       sprite(18).loc = point(479, 406)
  282.       if levelNum >= 5 then
  283.         pEneObject = new(script("EnemyScript"), 1, 3, 5, 200, 200, "ninja1", 35)
  284.       end if
  285.       if levelNum >= 4 then
  286.         pEneObject2 = new(script("EnemyScript"), 1, 3, 5, 405, 105, "ninja2", 36)
  287.       end if
  288.       if levelNum >= 3 then
  289.         pEneObject3 = new(script("EnemyScript"), 1, 3, 5, 405, 400, "ninja3", 37)
  290.       end if
  291.     5:
  292.       sprite(7).member = "Alpha5"
  293.       pAntObject = new(script("AntScript"), 1, 6, 5, 477, 20, 23)
  294.       sprite(18).loc = point(94, 406)
  295.       if levelNum >= 5 then
  296.         pEneObject = new(script("EnemyScript"), 1, 3, 5, 200, 200, "ninja1", 35)
  297.       end if
  298.       if levelNum >= 4 then
  299.         pEneObject2 = new(script("EnemyScript"), 1, 3, 5, 405, 105, "ninja2", 36)
  300.       end if
  301.       if levelNum >= 3 then
  302.         pEneObject3 = new(script("EnemyScript"), 1, 3, 5, 405, 395, "ninja3", 37)
  303.       end if
  304.     6:
  305.       sprite(7).member = "Alpha6"
  306.       pAntObject = new(script("AntScript"), 1, 6, 5, 94, 20, 23)
  307.       sprite(18).loc = point(477, 406)
  308.       if levelNum >= 5 then
  309.         pEneObject = new(script("EnemyScript"), 1, 3, 5, 200, 200, "ninja1", 35)
  310.       end if
  311.       if levelNum >= 4 then
  312.         pEneObject2 = new(script("EnemyScript"), 1, 3, 5, 405, 105, "ninja2", 36)
  313.       end if
  314.       if levelNum >= 3 then
  315.         pEneObject3 = new(script("EnemyScript"), 1, 3, 5, 405, 395, "ninja3", 37)
  316.       end if
  317.     7:
  318.       sprite(7).member = "Alpha7"
  319.       pAntObject = new(script("AntScript"), 1, 6, 5, 238, 20, 23)
  320.       sprite(18).loc = point(477, 406)
  321.       if levelNum >= 5 then
  322.         pEneObject = new(script("EnemyScript"), 1, 3, 5, 200, 200, "ninja1", 35)
  323.       end if
  324.       if levelNum >= 4 then
  325.         pEneObject2 = new(script("EnemyScript"), 1, 3, 5, 405, 105, "ninja2", 36)
  326.       end if
  327.       if levelNum >= 3 then
  328.         pEneObject3 = new(script("EnemyScript"), 1, 3, 5, 405, 395, "ninja3", 37)
  329.       end if
  330.     8:
  331.       sprite(7).member = "Alpha8"
  332.       pAntObject = new(script("AntScript"), 1, 6, 5, 285, 20, 23)
  333.       sprite(18).loc = point(323, 406)
  334.       if levelNum >= 5 then
  335.         pEneObject = new(script("EnemyScript"), 1, 3, 5, 200, 200, "ninja1", 35)
  336.       end if
  337.       if levelNum >= 4 then
  338.         pEneObject2 = new(script("EnemyScript"), 1, 3, 5, 405, 105, "ninja2", 36)
  339.       end if
  340.       if levelNum >= 3 then
  341.         pEneObject3 = new(script("EnemyScript"), 1, 3, 5, 405, 395, "ninja3", 37)
  342.       end if
  343.     9:
  344.       sprite(7).member = "Alpha9"
  345.       pAntObject = new(script("AntScript"), 1, 6, 5, 359, 20, 23)
  346.       sprite(18).loc = point(297, 406)
  347.       if levelNum >= 5 then
  348.         pEneObject = new(script("EnemyScript"), 1, 3, 5, 200, 200, "ninja1", 35)
  349.       end if
  350.       if levelNum >= 4 then
  351.         pEneObject2 = new(script("EnemyScript"), 1, 3, 5, 405, 105, "ninja2", 36)
  352.       end if
  353.       if levelNum >= 3 then
  354.         pEneObject3 = new(script("EnemyScript"), 1, 3, 5, 405, 395, "ninja3", 37)
  355.       end if
  356.     10:
  357.       sprite(7).member = "Alpha10"
  358.       pAntObject = new(script("AntScript"), 1, 6, 5, 405, 20, 23)
  359.       sprite(18).loc = point(383, 406)
  360.       if levelNum >= 5 then
  361.         pEneObject = new(script("EnemyScript"), 1, 3, 5, 200, 200, "ninja1", 35)
  362.       end if
  363.       if levelNum >= 4 then
  364.         pEneObject2 = new(script("EnemyScript"), 1, 3, 5, 405, 105, "ninja2", 36)
  365.       end if
  366.       if levelNum >= 3 then
  367.         pEneObject3 = new(script("EnemyScript"), 1, 3, 5, 405, 395, "ninja3", 37)
  368.       end if
  369.     11:
  370.       sprite(7).member = "Alpha11"
  371.       pAntObject = new(script("AntScript"), 1, 6, 5, 262, 20, 23)
  372.       sprite(18).loc = point(335, 406)
  373.       if levelNum >= 5 then
  374.         pEneObject = new(script("EnemyScript"), 1, 3, 5, 200, 200, "ninja1", 35)
  375.       end if
  376.       if levelNum >= 4 then
  377.         pEneObject2 = new(script("EnemyScript"), 1, 3, 5, 405, 105, "ninja2", 36)
  378.       end if
  379.       if levelNum >= 3 then
  380.         pEneObject3 = new(script("EnemyScript"), 1, 3, 5, 405, 395, "ninja3", 37)
  381.       end if
  382.   end case
  383. end
  384.  
  385. on doFadeOut
  386.   theTime = the ticks
  387.   repeat while sprite(249).blend > 15
  388.     if (theTime + 2) < the ticks then
  389.       theTime = the ticks
  390.       sprite(249).blend = sprite(249).blend - 15
  391.       updateStage()
  392.     end if
  393.   end repeat
  394.   sprite(249).blend = 0
  395. end
  396.  
  397. on doFinishIntro
  398.   sprite(35).loc = point(800, 800)
  399.   sprite(36).loc = point(800, 800)
  400.   sprite(37).loc = point(800, 800)
  401.   finishX2 = sprite(23).locH
  402.   finishY2 = sprite(23).locV
  403.   sprite(23).width = 40
  404.   sprite(23).height = 40
  405.   sprite(23).locH = 310
  406.   sprite(23).locV = 220
  407.   posX2 = 310
  408.   posY2 = 220
  409.   theAngle2 = getAngle(310, 220, finishX2, finishY2)
  410.   finishX = sprite(18).locH
  411.   finishY = sprite(18).locV
  412.   sprite(18).locH = 270
  413.   sprite(18).locV = 220
  414.   posX = 270.0
  415.   posY = 220.0
  416.   sprite(18).width = 40
  417.   sprite(18).height = 40
  418.   theAngle = getAngle(270, 220, finishX, finishY)
  419.   theSpeed = 10
  420.   theTime = the ticks
  421.   updateStage()
  422.   repeat while (theTime + 60) > the ticks
  423.     updateStage()
  424.   end repeat
  425.   theTime = the ticks
  426.   bool = 0
  427.   finishBool = 0
  428.   startBool = 0
  429.   repeat while not ((finishBool = 1) and (startBool = 1))
  430.     if (posX > (finishX - 2)) and (posX < (finishX + 2)) and (posY > (finishY - 2)) and (posY < (finishY + 2)) then
  431.       finishBool = 1
  432.     end if
  433.     if (posX2 > (finishX2 - 2)) and (posX2 < (finishX2 + 2)) and (posY2 > (finishY2 - 2)) and (posY2 < (finishY2 + 2)) then
  434.       startBool = 1
  435.     end if
  436.     if (theTime + 1) < the ticks then
  437.       theTime = the ticks
  438.       if (posY > 380) or (posY2 < 60) then
  439.         theSpeed = 5
  440.       end if
  441.       if (posY > 390) or (posY2 < 50) then
  442.         theSpeed = 3
  443.       end if
  444.       if (posY > 400) or (posY2 < 40) then
  445.         theSpeed = 1
  446.       end if
  447.       if startBool = 0 then
  448.         sprite(23).width = sprite(23).width - 3
  449.         sprite(23).height = sprite(23).height - 3
  450.         if sprite(23).width < 8 then
  451.           sprite(23).width = 8
  452.           sprite(23).height = 8
  453.         end if
  454.       end if
  455.       if finishBool = 0 then
  456.         sprite(18).width = sprite(18).width - 3
  457.         sprite(18).height = sprite(18).height - 3
  458.         if sprite(18).width < 10 then
  459.           sprite(18).width = 10
  460.           sprite(18).height = 10
  461.         end if
  462.       end if
  463.       if finishBool = 0 then
  464.         posX = posX - (float(sin(theAngle * 3.14000000000000012 / 180)) * theSpeed)
  465.         posY = posY - (float(cos(theAngle * 3.14000000000000012 / 180)) * theSpeed)
  466.         sprite(18).locH = posX
  467.         sprite(18).locV = posY
  468.       end if
  469.       if startBool = 0 then
  470.         posX2 = posX2 - (float(sin(theAngle2 * 3.14000000000000012 / 180)) * theSpeed)
  471.         posY2 = posY2 - (float(cos(theAngle2 * 3.14000000000000012 / 180)) * theSpeed)
  472.         sprite(23).locH = posX2
  473.         sprite(23).locV = posY2
  474.       end if
  475.       updateStage()
  476.     end if
  477.   end repeat
  478.   sprite(18).loc = point(finishX, finishY)
  479.   sprite(18).width = 10
  480.   sprite(18).height = 10
  481.   sprite(23).loc = point(finishX2, finishY2)
  482.   sprite(23).width = 8
  483.   sprite(23).height = 8
  484. end
  485.  
  486. on getAngle x1, y1, x2, y2
  487.   loc1 = [x1, y1]
  488.   loc2 = [x2, y2]
  489.   deltaX = loc2[1] - loc1[1]
  490.   deltaY = -1 * (loc2[2] - loc1[2])
  491.   if deltaY = 0 then
  492.     if deltaX > 0 then
  493.       return 0
  494.     end if
  495.     if deltaX < 0 then
  496.       return 180
  497.     end if
  498.   end if
  499.   if deltaX = 0 then
  500.     deltaX = 0.01
  501.   end if
  502.   theAngle = atan(float(deltaY) / float(deltaX))
  503.   theAngle = theAngle * 180 / PI
  504.   if (deltaX < 0) and (deltaY > 0) then
  505.     theAngle = 180 + theAngle
  506.   else
  507.     if (deltaX < 0) and (deltaY < 0) then
  508.       theAngle = 180 + theAngle
  509.     else
  510.       if (deltaX > 0) and (deltaY < 0) then
  511.         theAngle = 360 + theAngle
  512.       end if
  513.     end if
  514.   end if
  515.   theAngle = theAngle - 90
  516.   if theAngle < 0 then
  517.     theAngle = 360 + theAngle
  518.   end if
  519.   return theAngle
  520. end
  521.