home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 1_2002.ISO / Data / Zips / CODE_UPLOAD7538782000.psc / GForm.frm (.txt) next >
Encoding:
Visual Basic Form  |  2000-07-08  |  8.6 KB  |  317 lines

  1. VERSION 5.00
  2. Begin VB.Form GForm 
  3.    BorderStyle     =   1  'Fixed Single
  4.    Caption         =   "Kewl Jewels! - by Simon Price"
  5.    ClientHeight    =   5184
  6.    ClientLeft      =   0
  7.    ClientTop       =   228
  8.    ClientWidth     =   3816
  9.    Icon            =   "GForm.frx":0000
  10.    KeyPreview      =   -1  'True
  11.    LinkTopic       =   "Form1"
  12.    MaxButton       =   0   'False
  13.    ScaleHeight     =   432
  14.    ScaleMode       =   3  'Pixel
  15.    ScaleWidth      =   318
  16.    StartUpPosition =   2  'CenterScreen
  17.    Begin VB.PictureBox Display 
  18.       BackColor       =   &H00FFFFFF&
  19.       Height          =   5088
  20.       Left            =   120
  21.       ScaleHeight     =   420
  22.       ScaleMode       =   3  'Pixel
  23.       ScaleWidth      =   240
  24.       TabIndex        =   5
  25.       Top             =   0
  26.       Width           =   2928
  27.       Begin VB.PictureBox Sprites 
  28.          AutoRedraw      =   -1  'True
  29.          AutoSize        =   -1  'True
  30.          BackColor       =   &H00000000&
  31.          BorderStyle     =   0  'None
  32.          Height          =   1212
  33.          Left            =   720
  34.          ScaleHeight     =   101
  35.          ScaleMode       =   3  'Pixel
  36.          ScaleWidth      =   101
  37.          TabIndex        =   7
  38.          Top             =   360
  39.          Visible         =   0   'False
  40.          Width           =   1212
  41.       End
  42.       Begin VB.Timer MoveT 
  43.          Enabled         =   0   'False
  44.          Interval        =   500
  45.          Left            =   120
  46.          Top             =   120
  47.       End
  48.       Begin VB.PictureBox PB 
  49.          AutoRedraw      =   -1  'True
  50.          BackColor       =   &H00000000&
  51.          Height          =   5088
  52.          Left            =   720
  53.          ScaleHeight     =   420
  54.          ScaleMode       =   3  'Pixel
  55.          ScaleWidth      =   240
  56.          TabIndex        =   6
  57.          Top             =   1920
  58.          Visible         =   0   'False
  59.          Width           =   2928
  60.       End
  61.       Begin VB.Timer LevelT 
  62.          Enabled         =   0   'False
  63.          Interval        =   10000
  64.          Left            =   120
  65.          Top             =   600
  66.       End
  67.    End
  68.    Begin VB.PictureBox ColumnPic 
  69.       Height          =   1128
  70.       Left            =   3240
  71.       ScaleHeight     =   1080
  72.       ScaleWidth      =   360
  73.       TabIndex        =   0
  74.       Top             =   0
  75.       Width           =   408
  76.    End
  77.    Begin VB.Label LevelL 
  78.       Alignment       =   2  'Center
  79.       Caption         =   "1"
  80.       Height          =   252
  81.       Left            =   3120
  82.       TabIndex        =   4
  83.       Top             =   2640
  84.       Width           =   612
  85.    End
  86.    Begin VB.Label Label2 
  87.       Alignment       =   2  'Center
  88.       Caption         =   "Level"
  89.       Height          =   252
  90.       Left            =   3120
  91.       TabIndex        =   3
  92.       Top             =   2400
  93.       Width           =   612
  94.    End
  95.    Begin VB.Label ScoreL 
  96.       Alignment       =   2  'Center
  97.       Caption         =   "0"
  98.       Height          =   252
  99.       Left            =   3120
  100.       TabIndex        =   2
  101.       Top             =   1680
  102.       Width           =   612
  103.    End
  104.    Begin VB.Label Label1 
  105.       Alignment       =   2  'Center
  106.       Caption         =   "Score"
  107.       Height          =   252
  108.       Left            =   3120
  109.       TabIndex        =   1
  110.       Top             =   1440
  111.       Width           =   612
  112.    End
  113.    Begin VB.Menu mnuFile 
  114.       Caption         =   "&File"
  115.       Begin VB.Menu mnuNewGame 
  116.          Caption         =   "&New Game"
  117.          Shortcut        =   ^N
  118.       End
  119.       Begin VB.Menu mnuExit 
  120.          Caption         =   "E&xit"
  121.       End
  122.    End
  123.    Begin VB.Menu mnuDifficulty 
  124.       Caption         =   "&Difficulty"
  125.       Begin VB.Menu mnuEasy 
  126.          Caption         =   "&Easy"
  127.          Checked         =   -1  'True
  128.          Shortcut        =   ^E
  129.       End
  130.       Begin VB.Menu mnuMedium 
  131.          Caption         =   "&Medium"
  132.          Shortcut        =   ^M
  133.       End
  134.       Begin VB.Menu mnuHard 
  135.          Caption         =   "&Hard"
  136.          Shortcut        =   ^H
  137.       End
  138.    End
  139.    Begin VB.Menu mnuHelp 
  140.       Caption         =   "&Help"
  141.       Begin VB.Menu mnuAbout 
  142.          Caption         =   "&About"
  143.          Shortcut        =   ^A
  144.       End
  145.    End
  146. Attribute VB_Name = "GForm"
  147. Attribute VB_GlobalNameSpace = False
  148. Attribute VB_Creatable = False
  149. Attribute VB_PredeclaredId = True
  150. Attribute VB_Exposed = False
  151. Dim Key As Byte
  152. Dim GameOver As Boolean
  153. Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
  154. Key = KeyCode
  155. Select Case Key
  156.   Case vbKeyLeft
  157.     If MoveLeft Then
  158.     Else
  159.     End If
  160.   Case vbKeyRight
  161.     If MoveRight Then
  162.     Else
  163.     End If
  164.   Case vbKeyDown
  165.     MoveT.Interval = 10
  166.   Case vbKeyUp
  167.     RotateColumn
  168.   Case vbKeyEscape
  169.     End
  170. End Select
  171. End Sub
  172. Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
  173. If Key = vbKeyDown Then MoveT.Interval = MoveTime
  174. Key = NOWT
  175. End Sub
  176. Private Sub Form_Load()
  177. Randomize Timer
  178. MoveTime = 300
  179. Sprites = LoadPicture(App.Path & "\Resources\Graphix\Jewels.bmp")
  180. Display = LoadPicture(App.Path & "\Resources\Graphix\Intro.jpg")
  181. SetWindowPos hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE + SWP_NOSIZE
  182. End Sub
  183. Private Sub Form_Unload(Cancel As Integer)
  184. Key = vbKeyEscape
  185. End Sub
  186. Private Sub LevelT_Timer()
  187. Level = Level + 1
  188. LevelL = Level
  189. If MoveT.Interval > 10 Then MoveT.Interval = MoveT.Interval / 1.25
  190. End Sub
  191. Private Sub mnuAbout_Click()
  192. MsgBox "Kewl Jewels - version 1.0 - by Simon Price - Email : Si@VBgames.co.uk - Website : www.VBgames.co.uk ", vbInformation, "About Kewl Jewels"
  193. End Sub
  194. Private Sub mnuEasy_Click()
  195. Diff = 0
  196. mnuEasy.Checked = True
  197. mnuMedium.Checked = False
  198. mnuHard.Checked = False
  199. End Sub
  200. Private Sub mnuExit_Click()
  201. Unload Me
  202. End Sub
  203. Sub MainLoop()
  204. DoEvents
  205. DrawAll
  206. Animate
  207. If GameOver Then Exit Do
  208. Loop Until Key = vbKeyEscape
  209. MoveT.Enabled = False
  210. LevelT.Enabled = False
  211. MsgBox "Game Over! You scored " & Score & " points and reached level " & Level & "!", vbInformation, "Game Over!"
  212. Display = LoadPicture(App.Path & "\Resources\Graphix\Intro.jpg")
  213. End Sub
  214. Public Sub DoScore()
  215. Score = Score + ChainReaction
  216. ScoreL = Score
  217. End Sub
  218. Private Sub mnuHard_Click()
  219. Diff = 2
  220. mnuEasy.Checked = False
  221. mnuMedium.Checked = False
  222. mnuHard.Checked = True
  223. End Sub
  224. Private Sub mnuMedium_Click()
  225. Diff = 1
  226. mnuEasy.Checked = False
  227. mnuMedium.Checked = True
  228. mnuHard.Checked = False
  229. End Sub
  230. Private Sub mnuNewGame_Click()
  231. Dim x, y As Integer
  232. CreateColumn
  233. CreateColumn
  234. MoveT.Enabled = True
  235. LevelT.Enabled = True
  236. Score = 0
  237. Level = 1
  238. ScoreL = "0"
  239. LevelL = "1"
  240. GameOver = False
  241. Key = NOWT
  242. For x = 0 To XTILES
  243. For y = -3 To YTILES
  244.   Tile(x, y) = NOWT
  245. Select Case Diff
  246.  Case 0
  247.    MoveT.Interval = 500
  248.  Case 1
  249.    MoveT.Interval = 350
  250.  Case 2
  251.    MoveT.Interval = 150
  252. End Select
  253. MainLoop
  254. End Sub
  255. Private Sub MoveT_Timer()
  256. On Error Resume Next
  257. Dim Jewel As Byte
  258. If MoveColumn = STOPPED Then
  259. sndPlaySound App.Path & "\Resources\SoundFX\Land.wav", &H1
  260.   'column stopped, so create new one
  261.   If Special Then
  262.     sndPlaySound App.Path & "\Resources\SoundFX\Special.wav", 0
  263.     Tile(C.x, C.y + Special - 1) = VANISH
  264.     If Special = 3 Then
  265.       Jewel = Tile(C.x, C.y + 3)
  266.     Else
  267.       Jewel = C.Jewel(Special)
  268.     End If
  269.     If Jewel Then
  270.       DeleteAllJewelsOfType Jewel
  271.     End If
  272.   End If
  273.   DoScore
  274.   If ItIsGameOver Then GameOver = True
  275.   CreateColumn
  276. End If
  277. End Sub
  278. Sub DrawAll()
  279. Dim x, y As Integer
  280. 'go through each tile, drawing on backbuffer
  281. PB.Cls
  282. For x = 0 To XTILES
  283. For y = 0 To YTILES
  284.     Select Case Tile(x, y)
  285.     Case 1 To 8
  286.       BitBlt PB.hdc, x * 30, y * 30, 30, 30, Sprites.hdc, Frame * 30, (Tile(x, y) - 1) * 30, vbSrcCopy
  287.     Case VANISH To -1
  288.       BitBlt PB.hdc, x * 30, y * 30, 30, 30, Sprites.hdc, Tile(x, y) * -30, 240, vbSrcCopy
  289.     End Select
  290. 'copy into view
  291. BitBlt Display.hdc, 0, 0, 240, 420, PB.hdc, 0, 0, vbSrcCopy
  292. End Sub
  293. Public Sub CreateColumn()
  294. Dim i, y As Integer
  295. Special = Special2
  296. Special2 = 0
  297. 'swap active column
  298. C = C2
  299. 'position new column
  300. C2.x = Int(Rnd * 2) + 3
  301. C2.y = -3
  302. 'choose new jewels
  303. For i = 0 To 2
  304. TryAgain:
  305.     If Int(Rnd * 50) Then
  306.         C2.Jewel(i) = Int(Rnd * 6) + 2
  307.     Else
  308.         '1 in 50 jewels are special
  309.         If Special2 Then GoTo TryAgain
  310.         C2.Jewel(i) = CLEAR
  311.         Special2 = i + 1
  312.     End If
  313. 'paint new column in preview box
  314. For y = 0 To 2
  315.   BitBlt ColumnPic.hdc, 0, y * 30, 30, 30, Sprites.hdc, Frame * 30, (C2.Jewel(y) - 1) * 30, vbSrcCopy
  316. End Sub
  317.