Original Post
Im trying to make a tetris clone(im only 13) and the first block lands perfectly at the bottom. The second lands on top, the third just stays at the top.
GL
************************************************************
Dim BlockNumber As Variant
Dim NextBlock, BlockType, Block1, Block2, Block3, Block4, Block5, StartBlock, Go As Integer
Private Sub cmdExit_Click()
End
End Sub
Private Sub cmdNew_Click()
Call Start
End Sub
Public Function Start()
Go = 0
Block1 = 0
Block2 = 0
Block3 = 0
Block4 = 0
Block5 = 0
''Make next picture box visible
picNext.Visible = True
''Choose the block which is going to be used
BlockType = NextBlock
''Choose next block
Randomize
''NextBlock = Int((4 * Rnd) + 1)
NextBlock = 1
''Show next block in picture box
Select Case NextBlock
Case 1: picNext.Picture = LoadPicture(App.Path + "\graphics\1.bmp")
Case 2: picNext.Picture = LoadPicture(App.Path + "\graphics\2.bmp")
Case 3: picNext.Picture = LoadPicture(App.Path + "\graphics\3.bmp")
Case 4: picNext.Picture = LoadPicture(App.Path + "\graphics\4.bmp")
End Select
Select Case BlockType
Case 1: Call Start1 ''Start the revelent function for the block which has been chosen
''Case 2: Call start2
''Case 3: Call start3
''Case 4: Call start4
End Select
End Function
Public Function Start1() ''For line shaped block
StartBlock = 232
''Show the block in starting posistion
block(StartBlock).Picture = LoadPicture(App.Path + "\graphics\green.bmp")
block(StartBlock + 1).Picture = LoadPicture(App.Path + "\graphics\red.bmp")
block(StartBlock + 2).Picture = LoadPicture(App.Path + "\graphics\pink.bmp")
block(StartBlock + 3).Picture = LoadPicture(App.Path + "\graphics\yellow.bmp")
Timer1.Enabled = True
End Function
Private Sub Form_Load()
Randomize
''NextBlock = Int((4 * Rnd) + 1)
NextBlock = 1
End Sub
Private Sub Timer1_Timer()
On Error GoTo Error341
Go = Go + 1
Call CheckCollide
Go = Go - 1
block(StartBlock - (Go * 12)).Picture = LoadPicture("")
block(StartBlock - (Go * 12) + 1).Picture = LoadPicture("")
block(StartBlock - (Go * 12) + 2).Picture = LoadPicture("")
block(StartBlock - (Go * 12) + 3).Picture = LoadPicture("")
Go = Go + 1
block(StartBlock - (Go * 12)).Picture = LoadPicture(App.Path + "\graphics\green.bmp")
block(StartBlock - (Go * 12) + 1).Picture = LoadPicture(App.Path + "\graphics\red.bmp")
block(StartBlock - (Go * 12) + 2).Picture = LoadPicture(App.Path + "\graphics\pink.bmp")
block(StartBlock - (Go * 12) + 3).Picture = LoadPicture(App.Path + "\graphics\yellow.bmp")
Error341:
If Err.Number = 341 Then
Go = Go - 1
block(StartBlock - (Go * 12)).Picture = LoadPicture(App.Path + "\graphics\green.bmp")
block(StartBlock - (Go * 12) + 1).Picture = LoadPicture(App.Path + "\graphics\red.bmp")
block(StartBlock - (Go * 12) + 2).Picture = LoadPicture(App.Path + "\graphics\pink.bmp")
block(StartBlock - (Go * 12) + 3).Picture = LoadPicture(App.Path + "\graphics\yellow.bmp")
Timer1.Enabled = False
Call Start
End If
End Sub
Public Function CheckCollide()
If Not (block(StartBlock - (Go * 12)).Picture = LoadPicture("")) Or Not (block(StartBlock - (Go * 12) + 1).Picture = LoadPicture("")) Or Not (block(StartBlock - (Go * 12) + 2).Picture = LoadPicture("")) Or Not (block(StartBlock - (Go * 12) + 3).Picture = LoadPicture("")) Then
Timer1.Enabled = False
Call Start
End If
End Function