GAME2.TXT
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:4k
源码类别:

Windows编程

开发平台:

Visual C++

  1. $OBJECT=ShipClass
  2. $OBJECT=BubbleClass
  3. $OBJECT=AmmoClass
  4. $OBJECT=ExtraClass
  5. Option Explicit
  6. '----------------------------------------------------------------------------
  7. ' Game2.txt
  8. '----------------------------------------------------------------------------
  9. ' Use path to this file as parameter to Sprite.exe.  E.g.:
  10. '    Sprite C:TmpGame2.txt
  11. ' See "Game.Pix" for list of images available, numbered 0-n.
  12. '----------------------------------------------------------------------------
  13. Dim sShip               'Player's ship
  14. '----------------------------------------------------------------------------
  15. ' GAME events
  16. '
  17. Sub Game_NewGame()
  18. '   ------------
  19.     'Setup Collision possibilities.  Bit 1 is reserved for hitting same-kind objects.
  20.     ShipClass.Collide   = 2
  21.     BubbleClass.Collide = 2 + 4
  22.     AmmoClass.Collide   =     4
  23.     'Setup Standard images for the different classes of sprites
  24.     ShipClass.Image   = 32 'Ship
  25.     BubbleClass.Image = 60 'Small bubble
  26.     AmmoClass.Image   = 35 'Ammo
  27.     Set sShip = ShipClass.CreateSprite(Game.Width / 2, Game.Height / 2, 0)
  28.     BubbleClass.CreateSprite 0, 0, 0
  29. End Sub
  30. Sub Game_KeyDown(ByVal ch)
  31. '   ------------
  32.     Dim sT
  33.     'Up
  34.     If ch = 38 Then
  35.         sShip.Image = 24
  36.         Set sT = AmmoClass.CreateSprite(sShip.Left + sShip.Width / 2, sShip.Top, 0)
  37.         sT.Vx = 0 : sT.Vy = -5
  38.         sShip.Vy = sShip.Vy + 1
  39.     End If
  40.     'Down
  41.     If ch = 40 Then
  42.         sShip.Image = 8
  43.         Set sT = AmmoClass.CreateSprite(sShip.Left + sShip.Width / 2, sShip.Top + sShip.Height, 0)
  44.         sT.Vx = 0 : sT.Vy = 5
  45.         sShip.Vy = sShip.Vy - 1
  46.     End If
  47.     'Left
  48.     If ch = 37 Then
  49.         sShip.Image = 16
  50.         Set sT = AmmoClass.CreateSprite(sShip.Left, sShip.Top + sShip.Height / 2, 0)
  51.         sT.Vx = -5 : sT.Vy = 0
  52.         sShip.Vx = sShip.Vx + 1
  53.     End If
  54.     'Right
  55.     If ch = 39 Then
  56.         sShip.Image = 0
  57.         Set sT = AmmoClass.CreateSprite(sShip.Left + sShip.Width, sShip.Top + sShip.Height / 2, 0)
  58.         sT.Vx = 5 : sT.Vy = 0
  59.         sShip.Vx = sShip.Vx - 1
  60.     End If
  61. End Sub
  62. Sub Game_Collide(ByVal sLowId, ByVal sHighId, ByVal coll)
  63. '   ------------
  64.     Dim ship
  65.     Dim bubble
  66.     Dim ammo
  67.     Dim sT
  68.     Select Case coll
  69.         Case 2
  70.             Set ship   = sLowId
  71.             Set bubble = sHighId
  72.             If ship.Image <> 32 Then
  73.                 'Ship Hit Bubble
  74.                 sShip.Image = 32
  75.                 Game.ShipCount = Game.ShipCount - 1
  76.                 If Game.ShipCount <= 0 Then
  77.                     Game.EndGame
  78.                 Else
  79.                     sShip.Vx = 0 : sShip.Vy = 0
  80.                     sShip.MoveTo Game.Width / 2, Game.Height / 2
  81.                 End If
  82.             End If
  83.         Case 4
  84.             Set bubble = sLowId
  85.             Set ammo   = sHighId
  86.             ammo.Remove
  87.             If bubble.Image <= 57 Then
  88.                 Game.AddScore 50
  89.                 bubble.Remove
  90.                 Set sT = BubbleClass.CreateSprite(bubble.Left, bubble.Top, 1)
  91.                 sT.Vx  = bubble.Vx * 0.5 + 4 * Rnd() - 2
  92.                 sT.Vy  = bubble.Vy * 0.5 + 4 * Rnd() - 2
  93.                 Set sT = BubbleClass.CreateSprite(bubble.Left, bubble.Top, 1)
  94.                 sT.Vx  = bubble.Vx * 0.5 + 4 * Rnd() - 2
  95.                 sT.Vy  = bubble.Vy * 0.5 + 4 * Rnd() - 2
  96.             Else
  97.                 bubble.Image = bubble.Image - 1
  98.                 Game.AddScore 5
  99.             End If
  100.     End Select
  101. End Sub
  102. '----------------------------------------------------------------------------
  103. ' ShipClass events
  104. '
  105. Sub ShipClass_Border(ByVal s, ByVal brd)
  106.     Game.StdBorderBounce s, brd
  107. End Sub
  108. '----------------------------------------------------------------------------
  109. ' BubbleClass events
  110. '
  111. Sub BubbleClass_Init(ByVal s, ByVal u)
  112.     If s.Left = 0 Then
  113.         'New Bubble, so start it at an edge with a velocity
  114.         Game.StdInitEdge s, u
  115.         s.Vx = 6
  116.         s.Vy = 6
  117.     End If
  118. End Sub
  119. Sub BubbleClass_Border(ByVal s, ByVal brd)
  120.     Game.StdBorderBounce s, brd
  121. End Sub
  122. '----------------------------------------------------------------------------
  123. ' AmmoClass events
  124. '
  125. Sub AmmoClass_Border(ByVal s, ByVal brd)
  126.     s.Remove
  127. End Sub
  128. '--- EOF ---