Space Defender is a classical arcade style action game.

Submitted By: Unknown
Rating: starstarstarstarhalf star (Rate It)


Attribute VB_Name = "Enemy18"
Public SUB badguy18()

Form1.Pic_radar.CLS
Form1.Pic_radarv.CLS

FOR x = 0 TO CurLevel.NumOfBadGuys
   IF BadGuys(x).Activated = 0 THEN GOTO 10
   IF x = 20 THEN
      Set BadGuys(x).PicT = Form2.PicR
      Set BadGuys(x).mask = Form2.PicRm
      BadGuys(x).bulletlxpos = 7
      BadGuys(x).bulletlypos = 54
      BadGuys(x).bulletrxpos = 67
      BadGuys(x).bulletrypos = 54
      BadGuys(x).bulletcxpos = 34
      BadGuys(x).bulletcypos = 77
      BadGuys(x).xsize = 76
      BadGuys(x).ysize = 79
   END IF
   IF x < 20 THEN
      Set BadGuys(x).PicT = Form2.PicZ
      Set BadGuys(x).mask = Form2.PicZm
      BadGuys(x).bulletlxpos = 21
      BadGuys(x).bulletlypos = 35
      BadGuys(x).bulletrxpos = 52
      BadGuys(x).bulletrypos = 35
      BadGuys(x).xsize = 74
      BadGuys(x).ysize = 50
   END IF
   
   IF BadGuys(x).Activated = 1 AND BadGuys(x).Exploding = 0 THEN
      IF x > 1 AND numsec < 50 THEN BadGuys(x).y = Form1.PicMain.ScaleTop - 150
      IF x > 3 AND numsec < 100 THEN BadGuys(x).y = Form1.PicMain.ScaleTop - 150
      IF x > 5 AND numsec < 150 THEN BadGuys(x).y = Form1.PicMain.ScaleTop - 150
      IF x > 7 AND numsec < 200 THEN BadGuys(x).y = Form1.PicMain.ScaleTop - 150
      IF x > 9 AND numsec < 250 THEN BadGuys(x).y = Form1.PicMain.ScaleTop - 150
      IF x > 11 AND numsec < 300 THEN BadGuys(x).y = Form1.PicMain.ScaleTop - 150
      IF x > 13 AND numsec < 350 THEN BadGuys(x).y = Form1.PicMain.ScaleTop - 150
      IF x > 15 AND numsec < 400 THEN BadGuys(x).y = Form1.PicMain.ScaleTop - 150
      IF x > 17 AND numsec < 450 THEN BadGuys(x).y = Form1.PicMain.ScaleTop - 150
      IF x = 20 AND numsec < 500 THEN BadGuys(x).y = Form1.PicMain.ScaleTop - 150
      IF numsec = 600 THEN flgm = 0
     
      IF x < 20 THEN
         IF BadGuys(x).y > (Form1.PicMain.ScaleTop - 20) AND flgm = 0 THEN
            flgm = 1
            Form1.Tmr_flgm.Enabled = True
         END IF
         IF flgm = 1 OR flgm = 2 THEN
            IF BadGuys(x).DstX < BadGuys(x).x THEN
               BadGuys(x).x = BadGuys(x).x - BadGuys(x).Velocity
            ELSE
               BadGuys(x).x = BadGuys(x).x + BadGuys(x).Velocity
            END IF
            BadGuys(x).y = BadGuys(x).y + BadGuys(x).Velocity
         END IF
         IF flgm = 0 THEN BadGuys(x).y = BadGuys(x).y + BadGuys(x).Velocity
         IF ABS(BadGuys(x).x - BadGuys(x).DstX) < CurLevel.Velocity + 1 THEN BadGuys(x).DstX = RND * ((Form1.PicMain.ScaleWidth - 70) - Form1.PicMain.ScaleLeft)
         IF ABS(BadGuys(x).y - BadGuys(x).DstY) < CurLevel.Velocity + 1 THEN BadGuys(x).DstY = RND * (Form1.PicMain.ScaleHeight - 200)
      END IF
     
      IF x = 20 THEN
         IF BadGuys(x).DstX < BadGuys(x).x THEN
            BadGuys(x).x = (BadGuys(x).x - BadGuys(x).Velocity) + 2
         ELSE
            BadGuys(x).x = BadGuys(x).x + BadGuys(x).Velocity
         END IF
         IF BadGuys(x).y >= (Form1.PicMain.ScaleTop - 20) AND flgm = 0 THEN
            flgm = 1
            Form1.Tmr_flgm.Interval = 1
            Form1.Tmr_flgm.Enabled = True
            BadGuys(x).DstY = RND * (Form1.PicMain.ScaleHeight - 200)
         END IF
         IF flgm = 1 THEN
            IF BadGuys(x).DstY < BadGuys(x).y THEN
               BadGuys(x).y = (BadGuys(x).y - BadGuys(x).Velocity) + 2
            ELSE
               BadGuys(x).y = BadGuys(x).y + BadGuys(x).Velocity
            END IF
         END IF
         IF flgm = 0 THEN BadGuys(x).y = BadGuys(x).y + BadGuys(x).Velocity
         IF Form1.Tmr_flgm.Interval > 80 THEN BadGuys(x).y = BadGuys(x).y + BadGuys(x).Velocity
         IF ABS(BadGuys(x).x - BadGuys(x).DstX) < CurLevel.Velocity + 1 THEN BadGuys(x).DstX = RND * ((Form1.PicMain.ScaleWidth - 70) - Form1.PicMain.ScaleLeft)
         IF ABS(BadGuys(x).y - BadGuys(x).DstY) < CurLevel.Velocity + 1 THEN BadGuys(x).DstY = RND * (Form1.PicMain.ScaleHeight - 200)
      END IF
     
      BitBlt Form1.PicScreenBuffer.hdc, BadGuys(x).x, BadGuys(x).y, BadGuys(x).xsize, BadGuys(x).ysize, BadGuys(x).mask.hdc, 0, 0, vbMergePaint
      BitBlt Form1.PicScreenBuffer.hdc, BadGuys(x).x, BadGuys(x).y, BadGuys(x).xsize, BadGuys(x).ysize, BadGuys(x).PicT.hdc, 0, 0, vbSrcAnd
      BitBlt Form1.Pic_radar.hdc, BadGuys(x).x / (diffwidth - 0.7), (BadGuys(x).y + 100) / diffheight, 6, 6, Form1.rad.hdc, 0, 0, vbSrcCopy
      IF roll = True THEN BitBlt Form1.Pic_radarv.hdc, BadGuys(x).x / (diffwidth - 0.7), (BadGuys(x).y + 100) / diffheight, 6, 6, Form1.rad2.hdc, 0, 0, vbSrcCopy
   
   END IF
 
   IF x = 20 AND BadGuys(x).Damage > 200 THEN BadGuys(x).Exploding = 1
   IF x < 20 AND BadGuys(x).Damage > CurLevel.Damagelimit THEN BadGuys(x).Exploding = 1
     
   IF BadGuys(x).Activated = 1 THEN
      BadGuys(x).Firing = INT(RND * CurLevel.OddsOfFiring)
   ELSE
     BadGuys(x).Firing = 0
   END IF

'Firing bullets
IF BadGuys(x).y > Form1.PicMain.ScaleTop + 20 THEN
FOR y = 0 TO 0
IF BadGuys(x).Activated > 0 AND BadGuys(x).Firing = 1 THEN
IF BadGuys(x).Bulletl(y).Activated = 0 THEN
   BadGuys(x).Bulletl(y).Activated = 1
   BadGuys(x).Bulletl(y).x = BadGuys(x).x + BadGuys(x).bulletlxpos
   BadGuys(x).Bulletl(y).y = BadGuys(x).y + BadGuys(x).bulletlypos
END IF
IF BadGuys(x).Bulletr(y).Activated = 0 THEN
   BadGuys(x).Bulletr(y).Activated = 1
   BadGuys(x).Bulletr(y).x = BadGuys(x).x + BadGuys(x).bulletrxpos
   BadGuys(x).Bulletr(y).y = BadGuys(x).y + BadGuys(x).bulletrypos
END IF
IF x = 20 THEN
IF BadGuys(x).Bulletc(y).Activated = 0 THEN
   BadGuys(x).Bulletc(y).Activated = 1
   BadGuys(x).Bulletc(y).x = BadGuys(x).x + BadGuys(x).bulletcxpos
   BadGuys(x).Bulletc(y).y = BadGuys(x).y + BadGuys(x).bulletcypos
END IF
END IF
BadGuys(x).BulletsActivated = BadGuys(x).BulletsActivated + 1
END IF
NEXT y
END IF

IF CollisionDetect(ShipX, ShipY, Form2.Pictm, BadGuys(x).x, BadGuys(x).y, BadGuys(x).mask, Form2.PicTemp) THEN
   Exploding = 1
   BadGuys(x).Exploding = 1
END IF
     
10 NEXT x

FOR x = 0 TO CurLevel.NumOfBadGuys
FOR y = 0 TO 0
IF x < 20 THEN
IF BadGuys(x).Bulletl(y).Activated = 1 THEN
bullets = True
BadGuys(x).Bulletl(y).y = BadGuys(x).Bulletl(y).y + CurLevel.BulletSpeed
IF BadGuys(x).Bulletl(y).y > Form1.PicMain.ScaleHeight THEN
   BadGuys(x).Bulletl(y).Activated = 0
   bullets = False
END IF
BitBlt Form1.PicScreenBuffer.hdc, BadGuys(x).Bulletl(y).x, BadGuys(x).Bulletl(y).y, 6, 6, Form2.PicBBulletM.hdc, 0, 0, vbMergePaint
BitBlt Form1.PicScreenBuffer.hdc, BadGuys(x).Bulletl(y).x, BadGuys(x).Bulletl(y).y, 6, 6, Form2.PicGBullet.hdc, 0, 0, vbSrcAnd
IF BadGuys(x).Bulletl(y).x + Form2.PicCBullet.ScaleWidth > ShipX AND BadGuys(x).Bulletl(y).x < ShipX + Form2.Picture1.ScaleWidth AND _
   ABS((BadGuys(x).Bulletl(y).y - 25) - ShipY) < 18 THEN
   Form2.Picture1.Picture = Form2.PicFlash.Picture
   Health = Health - 10
   UpdateHealth
   BadGuys(x).Bulletl(y).Activated = 0
   bullets = False
END IF
END IF
 
IF BadGuys(x).Bulletr(y).Activated = 1 THEN
bullets = True
BadGuys(x).Bulletr(y).y = BadGuys(x).Bulletr(y).y + CurLevel.BulletSpeed
IF BadGuys(x).Bulletr(y).y > Form1.PicMain.ScaleHeight THEN
   BadGuys(x).Bulletr(y).Activated = 0
   bullets = False
END IF
BitBlt Form1.PicScreenBuffer.hdc, BadGuys(x).Bulletr(y).x, BadGuys(x).Bulletr(y).y, 6, 6, Form2.PicBBulletM.hdc, 0, 0, vbMergePaint
BitBlt Form1.PicScreenBuffer.hdc, BadGuys(x).Bulletr(y).x, BadGuys(x).Bulletr(y).y, 6, 6, Form2.PicGBullet.hdc, 0, 0, vbSrcAnd
IF BadGuys(x).Bulletr(y).x + Form2.PicCBullet.ScaleWidth > ShipX AND BadGuys(x).Bulletr(y).x < ShipX + Form2.Picture1.ScaleWidth AND _
   ABS((BadGuys(x).Bulletr(y).y - 25) - ShipY) < 18 THEN
   Form2.Picture1.Picture = Form2.PicFlash.Picture
   Health = Health - 10
   UpdateHealth
   BadGuys(x).Bulletr(y).Activated = 0
   bullets = False
END IF
END IF
END IF

IF x = 20 THEN
IF BadGuys(x).Bulletl(y).Activated = 1 THEN
bullets = True
BadGuys(x).Bulletl(y).x = BadGuys(x).Bulletl(y).x - COS(10 * Radians)
BadGuys(x).Bulletl(y).y = BadGuys(x).Bulletl(y).y + CurLevel.BulletSpeed
IF BadGuys(x).Bulletl(y).y > Form1.PicMain.ScaleHeight THEN
   BadGuys(x).Bulletl(y).Activated = 0
   bullets = False
END IF
BitBlt Form1.PicScreenBuffer.hdc, BadGuys(x).Bulletl(y).x, BadGuys(x).Bulletl(y).y, 8, 8, Form2.PicABulletM.hdc, 0, 0, vbMergePaint
BitBlt Form1.PicScreenBuffer.hdc, BadGuys(x).Bulletl(y).x, BadGuys(x).Bulletl(y).y, 8, 8, Form2.PicABullet.hdc, 0, 0, vbSrcAnd
IF BadGuys(x).Bulletl(y).x + Form2.PicCBullet.ScaleWidth > ShipX AND BadGuys(x).Bulletl(y).x < ShipX + Form2.Picture1.ScaleWidth AND _
   ABS((BadGuys(x).Bulletl(y).y - 25) - ShipY) < 18 THEN
   Form2.Picture1.Picture = Form2.PicFlash.Picture
   Health = Health - 10
   UpdateHealth
   BadGuys(x).Bulletl(y).Activated = 0
   bullets = False
END IF
END IF
 
IF BadGuys(x).Bulletr(y).Activated = 1 THEN
bullets = True
BadGuys(x).Bulletr(y).x = BadGuys(x).Bulletr(y).x + COS(10 * Radians)
BadGuys(x).Bulletr(y).y = BadGuys(x).Bulletr(y).y + CurLevel.BulletSpeed
IF BadGuys(x).Bulletr(y).y > Form1.PicMain.ScaleHeight THEN
   BadGuys(x).Bulletr(y).Activated = 0
   bullets = False
END IF
BitBlt Form1.PicScreenBuffer.hdc, BadGuys(x).Bulletr(y).x, BadGuys(x).Bulletr(y).y, 8, 8, Form2.PicABulletM.hdc, 0, 0, vbMergePaint
BitBlt Form1.PicScreenBuffer.hdc, BadGuys(x).Bulletr(y).x, BadGuys(x).Bulletr(y).y, 8, 8, Form2.PicABullet.hdc, 0, 0, vbSrcAnd
IF BadGuys(x).Bulletr(y).x + Form2.PicCBullet.ScaleWidth > ShipX AND BadGuys(x).Bulletr(y).x < ShipX + Form2.Picture1.ScaleWidth AND _
   ABS((BadGuys(x).Bulletr(y).y - 25) - ShipY) < 18 THEN
   Form2.Picture1.Picture = Form2.PicFlash.Picture
   Health = Health - 10
   UpdateHealth
   BadGuys(x).Bulletr(y).Activated = 0
   bullets = False
END IF
END IF
IF BadGuys(x).Bulletc(y).Activated = 1 THEN
   BitBlt Form1.PicScreenBuffer.hdc, BadGuys(x).Bulletc(y).x, BadGuys(x).Bulletc(y).y, 6, Form1.PicMain.ScaleHeight - BadGuys(x).Bulletc(y).y, Form2.Piclaser1m.hdc, 0, 0, vbMergePaint
   BitBlt Form1.PicScreenBuffer.hdc, BadGuys(x).Bulletc(y).x, BadGuys(x).Bulletc(y).y, 6, Form1.PicMain.ScaleHeight - BadGuys(x).Bulletc(y).y, Form2.Piclaser1.hdc, 0, 0, vbSrcAnd
   IF BadGuys(x).Bulletc(y).x > ShipX AND BadGuys(x).Bulletc(y).x < ShipX + Form2.Picture1.ScaleWidth AND _
      ShipY > Form1.PicMain.ScaleTop + BadGuys(x).Bulletc(y).y THEN
      Exploding = 1
   END IF
   BadGuys(x).Bulletc(y).Activated = 0
END IF
END IF
NEXT y

BadGuys(x).BulletsActivated = 0
NEXT x

FOR x = 0 TO CurLevel.NumOfBadGuys
    IF BadGuys(x).Activated = 1 AND BadGuys(x).y > Form1.PicMain.ScaleHeight THEN
       Tempclac = Tempclac + 1
       BadGuys(x).Activated = 0
    END IF
    IF BadGuys(x).Exploding = 1 THEN
       BadGuys(x).Activated = 0
       IF fboom = 1 THEN
          BitBlt Form1.PicScreenBuffer.hdc, BadGuys(x).x, BadGuys(x).y, 75, 64, Form2.PicExplodeM.hdc, 77 * BadGuys(x).ExplodingFrame, 0, vbPatInvert
          BitBlt Form1.PicScreenBuffer.hdc, BadGuys(x).x, BadGuys(x).y, 75, 64, Form2.PicExplode.hdc, 77 * BadGuys(x).ExplodingFrame, 0, vbSrcPaint
       ELSEIF fboom = 2 THEN
          BitBlt Form1.PicScreenBuffer.hdc, BadGuys(x).x, BadGuys(x).y, 60, 60, Form2.PicExplode1m.hdc, 60 * BadGuys(x).ExplodingFrame, 0, vbPatInvert
          BitBlt Form1.PicScreenBuffer.hdc, BadGuys(x).x, BadGuys(x).y, 60, 60, Form2.PicExplode1.hdc, 60 * BadGuys(x).ExplodingFrame, 0, vbSrcPaint
       ELSE
          BitBlt Form1.PicScreenBuffer.hdc, BadGuys(x).x, BadGuys(x).y, 80, 70, Form2.PicExplode2m.hdc, 80 * BadGuys(x).ExplodingFrame, 0, vbPatInvert
          BitBlt Form1.PicScreenBuffer.hdc, BadGuys(x).x, BadGuys(x).y, 80, 70, Form2.PicExplode2.hdc, 80 * BadGuys(x).ExplodingFrame, 0, vbSrcPaint
       END IF
       BadGuys(x).ExplodingFrame = BadGuys(x).ExplodingFrame + 1
       IF BadGuys(x).ExplodingFrame = 13 THEN
          BadGuys(x).Exploding = 0
          score = score + 50
          IF x = 20 THEN score = score + 50
          TempCalc = TempCalc + 1
          fboom = fboom + 1
          IF fboom > 3 THEN fboom = 1
       END IF
    END IF
NEXT x
   
IF Tempclac + TempCalc >= CurLevel.NumOfBadGuys + 1 AND bullets = False THEN
   flgm = 0
   Form1.Tmr_flgm.Interval = 1
   Form1.Tmr_flgm.Enabled = False
   stage = 0
END IF
numsec = numsec + 1

END SUB
 

Recent Jobs

Official Programmer's Heaven Blogs
Web Hosting | Browser and Social Games | Gadgets

Popular resources on Programmersheaven.com
Assembly | Basic | C | C# | C++ | Delphi | Flash | Java | JavaScript | Pascal | Perl | PHP | Python | Ruby | Visual Basic
© Copyright 2011 Programmersheaven.com - All rights reserved.
Reproduction in whole or in part, in any form or medium without express written permission is prohibited.
Violators of this policy may be subject to legal action. Please read our Terms Of Use and Privacy Statement for more information.
Operated by CommunityHeaven, a BootstrapLabs company.