Stap 3: Belangrijkste codering
-Open uw Code-Editor en ga naar algemeen - declaratiesectie en type volgende code:
Dim CBLOCK As Byte, BAlive(255) als LastLand als Byte, Boole-waarde, Lastone as Boolean
Dim TWrong As Byte, TCorrect als TBlocks als Byte, TRemain als Byte, Byte, doel als Byte
' //Note dat een Byte type variabele kan alleen het houden van 0 tot 255.
CBLOCK: Houdt het huidige blok-indexnummer.
BAlive(255): De array voor dead(missed) blokken. omdat de maximale waarde van CBLOCK is 255 is het bereik van de matrix 255 ingesteld.
LastLand: Houdt de index op het laatste blok correct landde. (Alive)
LaStone: gewoon ' verhuren u meer blokken neerzetten als de waarde true.
T(Wrong/correct/blocks/Remain): Duidelijk zichtbaar wat zijn ze gebruikt voor. de 'T' staat voor "Totaal".
Doel: hoeveel blokken te laten vallen.
-nu moeten we een Sub om te vergemakkelijken van het proces te laten vallen en vermijden fouten maken.
-Opnieuw ga naar algemeen - declaratiesectie en typ dit:
Sub DropBlock()
' als een blok nog steeds daalt, beëindigt de procedure
Als BlockLever.Enabled = True of Lastone = True Then Exit Sub
Als TRemain - 1 = 0 Then
' stop kraan
CCMove.Enabled = False
' moeder blok verbergen
Block(0). Zichtbaar = False
LaStone = True
Oproep Annoy(3)
End If
' laden van een nieuwe
CBLOCK = CBLOCK + 1
Laden Block(CBLOCK) ' load blok
Block(CBLOCK). ZOrder
Block(CBLOCK). Zichtbaar = True
BlockLever.Enabled = True
' elke 2 juiste blokken, scherm omhoog gaat
' Als CBLOCK Mod 2 = 0 dan ScreenAnim.Enabled = True
' totale instellen
TBlocks = CBLOCK
lbTotal.Caption = TBlocks
"Toon resterende
TRemain = doel - TBlocks
lbRemain.Caption = TRemain
End Sub
Ik heb de acties van de lijnen na het commentaar.
Nota over 'Block(CBLOCK). ZOrder': in Control matrices, met behulp van ZOrder brengt het besturingselement aan voorzijde (op de top van de anderen).
-Nog één ding is overgebleven. Het Annoy-systeem! Dit is dus eenvoudig cuz het toont enkel één of ander bericht.
-Maak een Label en noem deze "PLand_T" - geen idee voor de naam!! -Gebruik een groot lettertype voor het en de uitlijning instellen op Center voor betere interface.
-Maak een Timer en noem deze "Ten" - ingeschakeld: False - Interval: 1200
Dubbelklik erop en typt u de volgende kabeljauw voor het:
PLand_T.Visible = False
PLand.Enabled = False
** Ja! het enkel verdwijnt het bericht na 1,2 seconden
Oke. om te bepalen dit voegen we een Sub called Annoy met één argument waarmee de bericht-ID. Dit zal het proces en neemt kleinere plaats Bel verlichten. omdat u schreef de belangrijkste code vóór en noem deze wanneer je maar wilt.
-in Code-Editor, de generaal - declaratiesectie Voeg deze code toe:
Selecteer geval medio
Geval 0
PLand_T.ForeColor = vbBlack
PLand_T.Caption = "Get klaar!"
Geval 1
PLand_T.ForeColor = vbBlue
PLand_T.Caption = "Perfecte Landing!"
Case 2
PLand_T.ForeColor = vbRed
PLand_T.Caption = "Gemist!"
Case 3
PLand_T.ForeColor = vbBlack
PLand_T.Caption = "Dat was de laatste keer!"
cmdU.Visible = True
cmdD.Visible = True
Einde selecteren
PLand_T.Visible = True
PLand.Enabled = True
dus het systeem van bericht goed om te gaan is!
-Nu terug op uw formulier en invoegen van een Timer. De naam "BlockLever" - ingeschakeld: False - Interval: 25
Deze timer zal niet alleen het blok verplaatsen, het draait hoofdzakelijk de regels van het spel. dus het is de kritische deel.
Dubbelklik op het en typ de volgende code: (acties commentaar) moet u de juiste adressen typen in de aangegeven plaatsen
Block(CBLOCK). Top = Block(CBLOCK). Top + 150
Als CBLOCK = 1 Then ' eerste uitzondering blokkeren
Als Block(CBLOCK). Top + Block(CBLOCK). Hoogte > = BaseBlock.Top Then
BlockLever.Enabled = False
BAlive(CBLOCK) = True
LastLand = 1 ' goed, zelfs een gek aan het land kan deze een
' de juiste ergeren
TCorrect = TCorrect + 1
lbCorrect.Caption = TCorrect
End If
Anders
Als Block(CBLOCK). Top + Block(CBLOCK). Hoogte > = Block(LastLand). Top - 150 en Block(CBLOCK). Links > Block(LastLand). Links / (Block(CBLOCK). Breedte \ 2) en Block(CBLOCK). Links < Block(LastLand). Links + Block(LastLand). Breedte - (Block(CBLOCK). Breedte \ 2) dan
BlockLever.Enabled = False
BAlive(CBLOCK) = True ' ingesteld van deze index als Alive (correct landde)
' dok te corrigeren van de y-positie
Block(CBLOCK). Top = Block(LastLand). Top - Block(CBLOCK). Hoogte
' dok te corrigeren x positie op lage differece
Als Block(CBLOCK). Links > Block(LastLand). Links / 200 en Block(CBLOCK). Links < Block(LastLand). Links + 200 dan
Block(CBLOCK). Links = Block(LastLand). Links
' Perfect Land!
Oproep Annoy(1)
End If
LastLand = CBLOCK
' de juiste toevoegen
TCorrect = TCorrect + 1
lbCorrect.Caption = TCorrect
' elke 2 juiste blokken, scherm omhoog gaat
Als TCorrect Mod 2 = 0 dan ScreenAnim.Enabled = True
' laatst blokkeren
Als TRemain = 1 Then
Block(0). Foto = LoadPicture ("< The TOP Block adres hier >") ' de afbeelding instellen
End If
End If
End If
' als ging uit van het formulier
Als Block(CBLOCK). Top > Me.Height dan
BlockLever.Enabled = False ' stop de hendel
BAlive(CBLOCK) = False ' dit blok is dood
TWrong = TWrong + 1 ' Verhoog het onrecht
lbWrong.Caption = TWrong ' weer te geven
' laatst blokkeren
Als TRemain = 1 Then
Block(0). Foto = LoadPicture ("< The TOP Block adres hier >") ' de afbeelding instellen
End If
Bel Annoy(2) ' de gemiste bericht weergeven
End If