home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 3_2004-2005.ISO / Data / Zips / SpecialWor185951312005.psc / FrmMain.frm < prev    next >
Text File  |  2005-03-07  |  22KB  |  717 lines

  1. VERSION 5.00
  2. Begin VB.Form FrmMain 
  3.    BackColor       =   &H00E17E35&
  4.    BorderStyle     =   4  'Fixed ToolWindow
  5.    Caption         =   "Worm"
  6.    ClientHeight    =   4290
  7.    ClientLeft      =   45
  8.    ClientTop       =   615
  9.    ClientWidth     =   5820
  10.    ForeColor       =   &H00000000&
  11.    Icon            =   "FrmMain.frx":0000
  12.    KeyPreview      =   -1  'True
  13.    LinkTopic       =   "Form1"
  14.    MaxButton       =   0   'False
  15.    MinButton       =   0   'False
  16.    ScaleHeight     =   286
  17.    ScaleMode       =   3  'Pixel
  18.    ScaleWidth      =   388
  19.    StartUpPosition =   2  'CenterScreen
  20.    Begin VB.PictureBox Scr 
  21.       BackColor       =   &H00E0E0E0&
  22.       FillColor       =   &H008080FF&
  23.       FillStyle       =   0  'Solid
  24.       Height          =   3900
  25.       Left            =   0
  26.       Picture         =   "FrmMain.frx":08CA
  27.       ScaleHeight     =   256
  28.       ScaleMode       =   3  'Pixel
  29.       ScaleWidth      =   385
  30.       TabIndex        =   0
  31.       Top             =   0
  32.       Width           =   5835
  33.       Begin VB.Timer TimHideDamagedCar 
  34.          Enabled         =   0   'False
  35.          Interval        =   2000
  36.          Left            =   1860
  37.          Top             =   0
  38.       End
  39.       Begin VB.Timer TimMoveMan 
  40.          Enabled         =   0   'False
  41.          Interval        =   50
  42.          Left            =   2880
  43.          Top             =   0
  44.       End
  45.       Begin VB.Timer TimShowMan 
  46.          Enabled         =   0   'False
  47.          Interval        =   2000
  48.          Left            =   2460
  49.          Top             =   0
  50.       End
  51.       Begin VB.Timer TimMoveCar 
  52.          Enabled         =   0   'False
  53.          Interval        =   10
  54.          Left            =   1440
  55.          Top             =   0
  56.       End
  57.       Begin VB.Timer TimShowCar 
  58.          Enabled         =   0   'False
  59.          Interval        =   6000
  60.          Left            =   1020
  61.          Top             =   0
  62.       End
  63.       Begin VB.Timer TimMoveWorm 
  64.          Enabled         =   0   'False
  65.          Interval        =   50
  66.          Left            =   0
  67.          Top             =   0
  68.       End
  69.       Begin VB.Image Apple 
  70.          Height          =   240
  71.          Left            =   5280
  72.          Picture         =   "FrmMain.frx":16020C
  73.          Stretch         =   -1  'True
  74.          Top             =   2880
  75.          Visible         =   0   'False
  76.          Width           =   240
  77.       End
  78.       Begin VB.Image DamagedCar 
  79.          Height          =   480
  80.          Index           =   1
  81.          Left            =   5280
  82.          Picture         =   "FrmMain.frx":160AD6
  83.          Top             =   1620
  84.          Visible         =   0   'False
  85.          Width           =   480
  86.       End
  87.       Begin VB.Image DamagedCar 
  88.          Height          =   480
  89.          Index           =   0
  90.          Left            =   4740
  91.          Picture         =   "FrmMain.frx":1613A0
  92.          Top             =   1620
  93.          Visible         =   0   'False
  94.          Width           =   480
  95.       End
  96.       Begin VB.Image Wall 
  97.          Height          =   480
  98.          Index           =   0
  99.          Left            =   5280
  100.          Picture         =   "FrmMain.frx":161C6A
  101.          Top             =   2340
  102.          Visible         =   0   'False
  103.          Width           =   480
  104.       End
  105.       Begin VB.Image ImgCar 
  106.          Height          =   480
  107.          Index           =   1
  108.          Left            =   5280
  109.          Picture         =   "FrmMain.frx":161F74
  110.          Top             =   1200
  111.          Visible         =   0   'False
  112.          Width           =   480
  113.       End
  114.       Begin VB.Image ImgCar 
  115.          Height          =   480
  116.          Index           =   0
  117.          Left            =   4740
  118.          Picture         =   "FrmMain.frx":162286
  119.          Top             =   1200
  120.          Visible         =   0   'False
  121.          Width           =   480
  122.       End
  123.       Begin VB.Image Car 
  124.          Height          =   480
  125.          Index           =   0
  126.          Left            =   4200
  127.          Picture         =   "FrmMain.frx":162B50
  128.          Tag             =   "0"
  129.          Top             =   1200
  130.          Visible         =   0   'False
  131.          Width           =   480
  132.       End
  133.       Begin VB.Image Man 
  134.          Height          =   480
  135.          Index           =   0
  136.          Left            =   4140
  137.          Picture         =   "FrmMain.frx":16341A
  138.          Tag             =   "0"
  139.          Top             =   60
  140.          Visible         =   0   'False
  141.          Width           =   480
  142.       End
  143.       Begin VB.Image ImgMan 
  144.          Height          =   480
  145.          Index           =   1
  146.          Left            =   4440
  147.          Picture         =   "FrmMain.frx":163724
  148.          Top             =   60
  149.          Visible         =   0   'False
  150.          Width           =   480
  151.       End
  152.       Begin VB.Image ImgMan 
  153.          Height          =   480
  154.          Index           =   2
  155.          Left            =   4800
  156.          Picture         =   "FrmMain.frx":163A2E
  157.          Top             =   60
  158.          Visible         =   0   'False
  159.          Width           =   480
  160.       End
  161.       Begin VB.Image ImgMan 
  162.          Height          =   480
  163.          Index           =   3
  164.          Left            =   5100
  165.          Picture         =   "FrmMain.frx":163D38
  166.          Top             =   60
  167.          Visible         =   0   'False
  168.          Width           =   480
  169.       End
  170.       Begin VB.Image ImgMan 
  171.          Height          =   480
  172.          Index           =   4
  173.          Left            =   5400
  174.          Picture         =   "FrmMain.frx":164042
  175.          Top             =   60
  176.          Visible         =   0   'False
  177.          Width           =   480
  178.       End
  179.       Begin VB.Image ImgMan 
  180.          Height          =   480
  181.          Index           =   5
  182.          Left            =   4500
  183.          Picture         =   "FrmMain.frx":16434C
  184.          Top             =   540
  185.          Visible         =   0   'False
  186.          Width           =   480
  187.       End
  188.       Begin VB.Image ImgMan 
  189.          Height          =   480
  190.          Index           =   6
  191.          Left            =   4800
  192.          Picture         =   "FrmMain.frx":164656
  193.          Top             =   540
  194.          Visible         =   0   'False
  195.          Width           =   480
  196.       End
  197.       Begin VB.Image ImgMan 
  198.          Height          =   480
  199.          Index           =   7
  200.          Left            =   5100
  201.          Picture         =   "FrmMain.frx":164960
  202.          Top             =   540
  203.          Visible         =   0   'False
  204.          Width           =   480
  205.       End
  206.       Begin VB.Image ImgMan 
  207.          Height          =   480
  208.          Index           =   8
  209.          Left            =   5400
  210.          Picture         =   "FrmMain.frx":164C6A
  211.          Top             =   540
  212.          Visible         =   0   'False
  213.          Width           =   480
  214.       End
  215.    End
  216.    Begin VB.Label BtnOptions 
  217.       BackStyle       =   0  'Transparent
  218.       Caption         =   "Click here for options"
  219.       ForeColor       =   &H00800000&
  220.       Height          =   255
  221.       Left            =   120
  222.       TabIndex        =   5
  223.       Top             =   4380
  224.       Width           =   1575
  225.    End
  226.    Begin VB.Label CapLevel 
  227.       AutoSize        =   -1  'True
  228.       BackStyle       =   0  'Transparent
  229.       Caption         =   "1"
  230.       BeginProperty Font 
  231.          Name            =   "MS Sans Serif"
  232.          Size            =   9.75
  233.          Charset         =   178
  234.          Weight          =   700
  235.          Underline       =   0   'False
  236.          Italic          =   0   'False
  237.          Strikethrough   =   0   'False
  238.       EndProperty
  239.       ForeColor       =   &H00000000&
  240.       Height          =   240
  241.       Left            =   3900
  242.       TabIndex        =   4
  243.       Top             =   4065
  244.       Width           =   120
  245.    End
  246.    Begin VB.Label InfoLabel 
  247.       AutoSize        =   -1  'True
  248.       BackStyle       =   0  'Transparent
  249.       Caption         =   "Level :"
  250.       BeginProperty Font 
  251.          Name            =   "MS Sans Serif"
  252.          Size            =   12
  253.          Charset         =   178
  254.          Weight          =   700
  255.          Underline       =   0   'False
  256.          Italic          =   0   'False
  257.          Strikethrough   =   0   'False
  258.       EndProperty
  259.       ForeColor       =   &H0000FF00&
  260.       Height          =   300
  261.       Index           =   1
  262.       Left            =   3060
  263.       TabIndex        =   3
  264.       Top             =   4020
  265.       Width           =   780
  266.    End
  267.    Begin VB.Label CapScore 
  268.       BackStyle       =   0  'Transparent
  269.       Caption         =   "0"
  270.       BeginProperty Font 
  271.          Name            =   "MS Sans Serif"
  272.          Size            =   9.75
  273.          Charset         =   178
  274.          Weight          =   700
  275.          Underline       =   0   'False
  276.          Italic          =   0   'False
  277.          Strikethrough   =   0   'False
  278.       EndProperty
  279.       ForeColor       =   &H00000000&
  280.       Height          =   255
  281.       Left            =   1020
  282.       TabIndex        =   2
  283.       Top             =   4065
  284.       Width           =   1935
  285.    End
  286.    Begin VB.Label InfoLabel 
  287.       AutoSize        =   -1  'True
  288.       BackStyle       =   0  'Transparent
  289.       Caption         =   "Score :"
  290.       BeginProperty Font 
  291.          Name            =   "MS Sans Serif"
  292.          Size            =   12
  293.          Charset         =   178
  294.          Weight          =   700
  295.          Underline       =   0   'False
  296.          Italic          =   0   'False
  297.          Strikethrough   =   0   'False
  298.       EndProperty
  299.       ForeColor       =   &H0000FF00&
  300.       Height          =   300
  301.       Index           =   0
  302.       Left            =   120
  303.       TabIndex        =   1
  304.       Top             =   4020
  305.       Width           =   855
  306.    End
  307.    Begin VB.Menu MnuMain 
  308.       Caption         =   "Main"
  309.       Begin VB.Menu MnuStartGame 
  310.          Caption         =   "Start Game"
  311.       End
  312.       Begin VB.Menu MnuOpenLevel 
  313.          Caption         =   "Open"
  314.          Begin VB.Menu MnuOpenUserLevel 
  315.             Caption         =   "User Level"
  316.          End
  317.          Begin VB.Menu MnuOpenStandardLevel 
  318.             Caption         =   "Standard Level"
  319.          End
  320.       End
  321.       Begin VB.Menu MnuGameMode 
  322.          Caption         =   "GameMode"
  323.          Begin VB.Menu MnuUserLevel 
  324.             Caption         =   "User Levels"
  325.          End
  326.          Begin VB.Menu MnuStandardLevel 
  327.             Caption         =   "Standard Levels"
  328.             Checked         =   -1  'True
  329.          End
  330.       End
  331.       Begin VB.Menu MnuHelp 
  332.          Caption         =   "Help"
  333.       End
  334.       Begin VB.Menu MnuExit 
  335.          Caption         =   "Exit"
  336.       End
  337.    End
  338. End
  339. Attribute VB_Name = "FrmMain"
  340. Attribute VB_GlobalNameSpace = False
  341. Attribute VB_Creatable = False
  342. Attribute VB_PredeclaredId = True
  343. Attribute VB_Exposed = False
  344.  
  345. Private Sub BtnOptions_Click()
  346. GamePause
  347. Me.PopupMenu MnuMain
  348. End Sub
  349.  
  350. Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
  351. Dim PreJahat As Byte
  352. PreJahat = Jahat 'Hold previous direction
  353. Select Case KeyCode 'change worm's direction according to keys
  354.  Case 37
  355.    If Jahat <> 2 And Not Paused Then Jahat = 4
  356.  Case 39
  357.    If Jahat <> 4 And Not Paused Then Jahat = 2
  358.  Case 38
  359.    If Jahat <> 3 And Not Paused Then Jahat = 1
  360.  Case 40
  361.    If Jahat <> 1 And Not Paused Then Jahat = 3
  362.  Case 80
  363.    GamePause
  364.    ShowMsg "Game paused" + vbNewLine + "press ok button to resume"
  365.    DoEvents
  366.    DrawWorm 'redraw the worm
  367.    GameResume
  368.  Case 83
  369.    'Start game from first level if user has lost . else restart current level
  370.    LoadLevel Info.CurLevel
  371. End Select
  372. If PreJahat <> Jahat Then TimMoveWorm_Timer
  373. End Sub
  374.  
  375. Sub ShowApple()
  376. Dim Can As Boolean
  377. Apple.Visible = False
  378. 'Find a free place and move the apple there
  379. Do
  380.   Apple.Top = Ran((Scr.Height - Apple.Height) \ WormWidth) * WormWidth
  381.   Apple.Left = Ran((Scr.Width - Apple.Width) \ WormWidth) * WormWidth
  382.   Can = True
  383.   For I = 1 To Info.WallCount
  384.       'Is the apple on a wall
  385.       If Apple.Top + Apple.Height > Wall(I).Top And Apple.Top < Wall(I).Top + Wall(I).Height Then
  386.         If Apple.Left + Apple.Width > Wall(I).Left And Apple.Left < Wall(I).Left + Wall(I).Width Then
  387.           Can = False
  388.         End If
  389.       End If
  390.   Next
  391. Loop Until Can
  392. Apple.Visible = True
  393. DrawWorm
  394. End Sub
  395.  
  396.  
  397.  
  398. Private Sub Form_Load()
  399. MnuMain.Visible = False
  400. End Sub
  401.  
  402. Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
  403. ' this line is required to stop sound of this level
  404. StopSound Info.LevelSound
  405. End Sub
  406.  
  407.  
  408.  
  409. Private Sub MnuExit_Click()
  410. ' this line is required to stop sound of this level
  411. StopSound Info.LevelSound
  412. 'End program
  413. End
  414. End Sub
  415.  
  416. Private Sub MnuHelp_Click()
  417. FrmHelp.Show 1, Me
  418. End Sub
  419.  
  420. Private Sub MnuOpenStandardLevel_Click()
  421. Dim J
  422. J = InputBox("Enter The Level Number", "")
  423. If Val(J) Then
  424.   Info.CurLevel = Val(J)
  425.   Info.LevelsDir = CPath + "Levels\"
  426.   LoadLevel Info.CurLevel
  427. End If
  428. End Sub
  429.  
  430. Private Sub MnuOpenUserLevel_Click()
  431. Dim J
  432. J = InputBox("Enter The Level Number", "")
  433. If Val(J) Then
  434.   Info.CurLevel = Val(J)
  435.   Info.LevelsDir = CPath + "Levels\User\"
  436.   LoadLevel Info.CurLevel
  437. End If
  438. End Sub
  439.  
  440. Private Sub MnuStandardLevel_Click()
  441. MnuStandardLevel.Checked = True
  442. MnuUserLevel.Checked = False
  443. Info.LevelsDir = CPath + "Levels\"
  444. Info.CurLevel = 1
  445. End Sub
  446.  
  447. Private Sub MnuStartGame_Click()
  448. LoadLevel Info.CurLevel
  449. End Sub
  450.  
  451. Private Sub MnuUserLevel_Click()
  452. MnuUserLevel.Checked = True
  453. MnuStandardLevel.Checked = False
  454. Info.LevelsDir = CPath + "Levels\User\"
  455. Info.CurLevel = 1
  456. End Sub
  457.  
  458.  
  459. Private Sub TimHideDamagedCar_Timer()
  460. DamagedCar(0).Visible = False
  461. DamagedCar(1).Visible = False
  462. TimHideDamagedCar = False
  463. DrawWorm
  464. End Sub
  465.  
  466. Private Sub TimMoveCar_Timer()
  467. Dim I, N As Integer
  468. For I = 1 To Car.Count - 1
  469.   If Car(I).Visible Then
  470.     If Car(I).Tag Then
  471.       Car(I).Left = Car(I).Left + 1
  472.     Else
  473.       Car(I).Left = Car(I).Left - 1
  474.     End If
  475.     'Draw The Dots Which Are Cleared
  476.     For N = 1 To Info.WormLen
  477.       If WormDot(N).Top + WormWidth >= Car(I).Top - 10 And WormDot(N).Top <= Car(I).Top + Car(I).Height + 10 Then
  478.         If WormDot(N).Left + WormWidth >= Car(I).Left - 10 And WormDot(N).Left <= Car(I).Left + Car(I).Width + 10 Then
  479.           Scr.Circle (WormDot(N).Left, WormDot(N).Top), HalfWormWidth
  480.         End If
  481.      End If
  482.     Next
  483.     'Has The Car Faced The Wall
  484.     For J = 1 To Wall.Count - 1
  485.       If Car(I).Top + Car(I).Height > Wall(J).Top And Car(I).Top < Wall(J).Top + Wall(J).Height Then
  486.         If Car(I).Left + Car(I).Width > Wall(J).Left And Car(I).Left < Wall(J).Left + Wall(J).Width Then
  487.            Car(I).Picture = ImgCar(Car(I).Tag + 2)
  488.            PlaySound CPath + "Sounds\Destroy.WAV"
  489.            DamagedCar(Car(I).Tag).Top = Car(I).Top
  490.            DamagedCar(Car(I).Tag).Left = Car(I).Left
  491.            Car(I).Visible = False
  492.            DamagedCar(Car(I).Tag).Visible = True
  493.            TimHideDamagedCar = True
  494.            DrawWorm
  495.         End If
  496.       End If
  497.     Next
  498.   
  499.   End If
  500. Next
  501. End Sub
  502.  
  503. Private Sub TimMoveMan_Timer()
  504. Dim I As Integer
  505. For I = 1 To UBound(RecMan)
  506.   If RecMan(I).Visible Then
  507.      'Change Man's pic
  508.      If RecMan(I).D < 20 / (TimMoveMan.Interval / 6) Then
  509.        RecMan(I).D = RecMan(I).D + 1
  510.      Else
  511.        RecMan(I).D = 0
  512.        If Man(I).Tag Then Man(I).Tag = 0 Else Man(I).Tag = 1
  513.        If RecMan(I).Jahat Then
  514.          RecMan(I).D = 0
  515.          Man(I).Picture = ImgMan(RecMan(I).Jahat * 2 - Man(I).Tag)
  516.        Else
  517.          Man(I).Picture = ImgMan(5 + Man(I).Tag)
  518.        End If
  519.      End If
  520.    'Change Man's Direction
  521.     If WormDot(1).Left < Man(I).Left + Man(I).Width + 30 And WormDot(1).Left > Man(I).Left - 30 And WormDot(1).Top > Man(I).Top - 30 And WormDot(1).Top < Man(I).Top + Man(I).Height + 30 Then
  522.       If RecMan(I).NearWorm = False Then
  523.         RecMan(I).NearWorm = True
  524.         RecMan(I).Jahat = Ran(4)
  525.         PlaySound CPath + "Sounds\hey.WAV"
  526.       End If
  527.     Else
  528.       RecMan(I).NearWorm = False
  529.     End If
  530.     'Move Man
  531.     Select Case RecMan(I).Jahat
  532.      Case 1
  533.        Man(I).Top = Man(I).Top - 1
  534.      Case 2
  535.        Man(I).Left = Man(I).Left + 1
  536.      Case 3
  537.        Man(I).Top = Man(I).Top + 1
  538.      Case 4
  539.        Man(I).Left = Man(I).Left - 1
  540.     End Select
  541.     'Draw The Dots Which Are Cleared
  542.     For N = 1 To Info.WormLen
  543.       If WormDot(N).Top + WormWidth >= Man(I).Top - 10 And WormDot(N).Top <= Man(I).Top + Man(I).Height + 10 Then
  544.         If WormDot(N).Left + WormWidth >= Man(I).Left - 10 And WormDot(N).Left <= Man(I).Left + Man(I).Width + 10 Then
  545.           Scr.Circle (WormDot(N).Left, WormDot(N).Top), HalfWormWidth
  546.         End If
  547.      End If
  548.     Next
  549.     'Check Man's Position
  550.     If Man(I).Top < -Man(I).Height Or Man(I).Left < -Man(I).Width Or Man(I).Top > Scr.Height Or Man(I).Left > Scr.Width Then RecMan(I).Visible = False
  551.   End If
  552. Next
  553. End Sub
  554.  
  555. Private Sub TimMoveWorm_Timer()
  556. Rec.Top = WormDot(Info.WormLen).Top - HalfWormWidth
  557. Rec.Left = WormDot(Info.WormLen).Left - HalfWormWidth
  558. Rec.Bottom = WormDot(Info.WormLen).Top + HalfWormWidth + 1
  559. Rec.Right = WormDot(Info.WormLen).Left + HalfWormWidth + 1
  560. RedrawWindow Scr.hWnd, Rec, 0, 1
  561.  
  562. 'Remove Last Dot
  563. For I = Info.WormLen To 2 Step -1
  564.   WormDot(I).Left = WormDot(I - 1).Left
  565.   WormDot(I).Top = WormDot(I - 1).Top
  566. Next
  567. Select Case Jahat 'move worm accordding to the direction
  568.  Case 1
  569.    WormDot(1).Top = WormDot(1).Top - WormWidth
  570.  Case 2
  571.    WormDot(1).Left = WormDot(1).Left + WormWidth
  572.  Case 3
  573.    WormDot(1).Top = WormDot(1).Top + WormWidth
  574.  Case 4
  575.    WormDot(1).Left = WormDot(1).Left - WormWidth
  576. End Select
  577. ControlWorm
  578. 'Draw worm's head
  579. Scr.Circle (WormDot(1).Left, WormDot(1).Top), HalfWormWidth
  580. Scr.Circle (WormDot(1).Left, WormDot(1).Top), HalfWormWidth - 2, QBColor(4)
  581. 'Clear Previous Head
  582. Scr.Circle (WormDot(2).Left, WormDot(2).Top), HalfWormWidth, 0
  583. End Sub
  584.  
  585. Sub ControlWorm()
  586. Dim I As Integer
  587. Dim Lost As Boolean
  588. Lost = False
  589. 'Has The Worm Got Into Itself?
  590. For I = 2 To Info.WormLen
  591.   If WormDot(1).Top = WormDot(I).Top And WormDot(1).Left = WormDot(I).Left Then
  592.     Lost = True
  593.     I = Info.WormLen
  594.   End If
  595. Next
  596. 'Has The Worm Got Out Of The Form?
  597. If WormDot(1).Top < 0 Or WormDot(1).Top + WormWidth > Scr.Height Or WormDot(1).Left < 0 Or WormDot(1).Left + WormWidth > Scr.Width Then
  598.   Lost = True
  599. End If
  600. 'Has Worm Eaten A Man?
  601. For I = 1 To UBound(RecMan)
  602.   If RecMan(I).Visible Then
  603.     If WormDot(1).Top + WormWidth > Man(I).Top And WormDot(1).Top < Man(I).Top + Man(I).Height Then
  604.       If WormDot(1).Left + WormWidth > Man(I).Left And WormDot(1).Left < Man(I).Left + Man(I).Width Then
  605.         RecMan(I).Visible = False
  606.         Man(I).Visible = False
  607.         PlaySound CPath + "Sounds\ManDie.WAV"
  608.         AddToWormLen Info.ManAddToWormLen
  609.         Info.Score = Info.Score + Info.ManScore
  610.         ScoreChanged
  611.         DrawWorm
  612.       End If
  613.     End If
  614.   End If
  615. Next
  616. 'Has Worm Eaten A Car?
  617. For I = 1 To Car.Count - 1
  618.   If Car(I).Visible Then
  619.     If WormDot(1).Top + WormWidth > Car(I).Top And WormDot(1).Top < Car(I).Top + Car(I).Height Then
  620.       If WormDot(1).Left + WormWidth > Car(I).Left And WormDot(1).Left < Car(I).Left + Car(I).Width Then
  621.         Car(I).Visible = False
  622.         PlaySound CPath + "Sounds\CarDie.WAV"
  623.         AddToWormLen Info.CarAddToWormLen
  624.         Info.Score = Info.Score + Info.CarScore
  625.         ScoreChanged
  626.         DrawWorm
  627.       End If
  628.     End If
  629.   End If
  630. Next
  631. For I = 1 To Wall.Count - 1
  632.   If WormDot(1).Top + HalfWormWidth > Wall(I).Top And WormDot(1).Top < Wall(I).Top + Wall(I).Height Then
  633.     If WormDot(1).Left + HalfWormWidth > Wall(I).Left And WormDot(1).Left < Wall(I).Left + Wall(I).Width Then
  634.       Lost = True
  635.     End If
  636.   End If
  637. Next
  638. 'Has The Worm Eaten The Apple
  639. If WormDot(1).Top + WormWidth > Apple.Top And WormDot(1).Top < Apple.Top + Apple.Height Then
  640.   If WormDot(1).Left + WormWidth > Apple.Left And WormDot(1).Left < Apple.Left + Apple.Width Then
  641.     PlaySound CPath + "Sounds\AppleEat.WAV"
  642.     AddToWormLen Info.AppleAddToWormLen
  643.     ShowApple
  644.     Info.Score = Info.Score + Info.AppleScore
  645.     ScoreChanged
  646.     DrawWorm
  647.   End If
  648. End If
  649. If Lost Then
  650.   WormDot(1).Top = -1000: WormDot(2).Top = -1000
  651.   GamePause
  652.   Apple.Visible = False
  653.   Scr.Cls
  654.   ShowMsg "      Game Over      ", CPath + "Sounds\GameOver.WAV", 26
  655.   Info.CurLevel = 1
  656.   Me.CapScore.Caption = 0
  657.   Me.CapLevel.Caption = 1
  658. End If
  659. End Sub
  660.  
  661. Private Sub TimShowCar_Timer()
  662. Dim I As Integer
  663. I = Car.Count
  664. If I > Info.CarCount Then
  665.   TimShowCar = False
  666.   Exit Sub
  667. End If
  668. Load Car(I)
  669. If Ran(2) = 1 Then
  670.   Car(I).Tag = 0
  671.   Car(I).Picture = ImgCar(0)
  672.   Car(I).Left = Scr.Width + Car(I).Width
  673.   Car(I).Top = Ran((Scr.Height - Car(I).Height) \ WormWidth) * WormWidth
  674. Else
  675.   Car(I).Tag = 1
  676.   Car(I).Picture = ImgCar(1)
  677.   Car(I).Left = -Car(I).Width
  678.   Car(I).Top = Ran((Scr.Height - Car(I).Height) \ WormWidth) * WormWidth
  679. End If
  680. Car(I).Visible = True
  681. DrawWorm
  682. PlaySound CPath + "Sounds\CarEnter.WAV"
  683. End Sub
  684.  
  685. Private Sub TimShowMan_Timer()
  686. Dim I As Integer
  687. I = UBound(RecMan) + 1
  688. If I > Info.ManCount Then
  689.   TimShowMan = False
  690.   Exit Sub
  691. End If
  692. ReDim Preserve RecMan(I)
  693. Load Man(I)
  694. 'Find A Random Place
  695. Man(I).Top = Ran((Scr.Height - Man(I).Height) \ WormWidth) * WormWidth
  696. Man(I).Left = Ran((Scr.Width - Man(I).Width) \ WormWidth) * WormWidth
  697.  
  698. RecMan(I).Visible = True
  699. RecMan(I).Jahat = Ran(4)
  700. RecMan(I).D = 0
  701. Man(I).Visible = True
  702. DrawWorm
  703. End Sub
  704. Sub AddToWormLen(L As Integer)
  705. ReDim Preserve WormDot(UBound(WormDot) + L)
  706. For I = Info.WormLen To Info.WormLen + L
  707.   WormDot(I).Left = WormDot(Info.WormLen).Left
  708.   WormDot(I).Top = WormDot(Info.WormLen).Top
  709. Next
  710. Info.WormLen = Info.WormLen + L
  711. End Sub
  712. Sub DrawWorm()
  713. For I = 1 To Info.WormLen
  714.   Scr.Circle (WormDot(I).Left, WormDot(I).Top), HalfWormWidth
  715. Next
  716. End Sub
  717.