Étape 3: Codage principal
-Ouvrez votre éditeur de Code et aller aux généraux - Section de déclarations et de type suite code :
Dim CBLOCK As Byte, BAlive(255) As Boolean, LastLand As Byte, qui as Boolean
Dim TWrong As Byte, TCorrect comme TBlocks As Byte, TRemain As Byte, Byte, but As Byte
« //Note qu’une variable de type octet ne peut contenir de 0 à 255.
CBLOCK : Contient le numéro d’index de bloc actuelle.
BAlive(255) : Le tableau pour les blocs de dead(missed). parce que la valeur maximale de CBLOCK est 255 la plage du tableau a la valeur 255.
LastLand : Contient l’index sur le dernier bloc s’est posé correctement. (Alive)
Nasnoussa : ne vous laissera pas tomber les blocs plus si elle est vraie.
T(Wrong/correct/blocks/Remain) : Bien visible ce qui sont ils utilisés pour. le ' t ' est l’abréviation de « Total ».
Objectif : combien de blocs de laisser tomber.
-maintenant, nous devons créer une Sub pour faciliter le processus de la chute et éviter les bugs.
-Encore une fois, allez dans général - section déclarations et tapez ceci :
Void DropBlock()
"si un bloc est toujours en baisse, arrêter la procédure
Si BlockLever.Enabled = True ou nasnoussa = True Then Exit Sub
Si TRemain - 1 = 0 alors
"arrêt de grue
CCMove.Enabled = False
« cacher le bloc de la mère
Block(0). Visible = False
Nasnoussa = True
Appel Annoy(3)
End If
« charger un nouveau
CBLOCK = CBLOCK + 1
Charger Block(CBLOCK) ' bloc de charge
Block(CBLOCK). ZOrder
Block(CBLOCK). Visible = True
BlockLever.Enabled = True
« chaque 2 blocs correctes, écran Monte
' Si CBLOCK Mod 2 = 0 puis ScreenAnim.Enabled = True
"la valeur totale
TBlocks = CBLOCK
lbTotal.Caption = TBlocks
« montrer restant
TRemain = Goal - TBlocks
lbRemain.Caption = TRemain
End Sub
J’ai commenté les actions des lignes qui suivent, il.
Note relative à la 'Block(CBLOCK). ZOrder': dans les tableaux de contrôles, à l’aide de ZOrder apportera le contrôle à l’avant (sur les autres).
-Encore une chose reste. Le système d’agacer!. Il s’agit de simple cuz il montre juste quelques message.
-Créer une étiquette et nommez-le "PLand_T" - aucune idée pour le nom!! -utiliser une police de grande taille pour elle et de définir l’alignement sur le Centre pour la meilleure interface.
-Créer une minuterie et nommez-le « PLand"- Enabled : False - intervalle : 1200
Double-cliquez dessus et saisissez la morue suivante pour qu’il :
PLand_T.Visible = False
PLand.Enabled = False
** Oui ! il disparaît juste le message après 1,2 secondes
pas grave. pour contrôler cela, nous ajouterons une sous-routine appelée agacer avec un argument qui spécifie l’ID de message. Ceci facilitera le processus et prend lieu plus petit à appeler. parce que vous avez écrit le code principal avant et appeler quand vous le voulez.
-dans éditeur de Code, le général - section déclarations ajoutez ce code :
Sélectionnez l’option casse milieu
Case 0
PLand_T.ForeColor = vbBlack
PLand_T.Caption = « Préparez-vous! »
Cas 1
PLand_T.ForeColor = vbBlue
PLand_T.Caption = « Perfect atterrissage! »
Cas 2
PLand_T.ForeColor = vbRed
PLand_T.Caption = « Raté » !
Cas 3
PLand_T.ForeColor = vbBlack
PLand_T.Caption = « Qui était le dernier! »
cmdU.Visible = True
cmdD.Visible = True
End Select
PLand_T.Visible = True
PLand.Enabled = True
le système de messagerie est donc bon d’aller !
-Maintenant revenir sur votre formulaire et insérer un Timer. Nommez-le « BlockLever » - Enabled : False - intervalle : 25
Cette horloge ne sera pas seulement déplacer le bloc, il exécute essentiellement les règles du jeu. Il est donc la partie critique.
Double-cliquez dessus et saisissez le code suivant: (Actions commenté), vous devez taper les adresses appropriées dans les endroits indiqués
Block(CBLOCK). Top = Block(CBLOCK). Top + 150
Si CBLOCK = 1 Then ' abord bloquer l’exception
Si Block(CBLOCK). Top + Block(CBLOCK). Hauteur > = BaseBlock.Top Then
BlockLever.Enabled = False
BAlive(CBLOCK) = True
LastLand = 1 ' Eh bien, même un idiot peut se poser celui-ci
« contrarier le bon
TCorrect = TCorrect + 1
lbCorrect.Caption = TCorrect
End If
D’autre
Si Block(CBLOCK). Top + Block(CBLOCK). Hauteur > = Block(LastLand). Accueil - 150 et Block(CBLOCK). Gauche > Block(LastLand). Gauche - (Block(CBLOCK). Largeur \ 2) et Block(CBLOCK). Gauche < Block(LastLand). Gauche + Block(LastLand). Largeur - (Block(CBLOCK). Largeur \ 2) puis
BlockLever.Enabled = False
BAlive(CBLOCK) = True ' la valeur de cet indice comme Alive (bien reçu)
"station d’accueil pour corriger la position y
Block(CBLOCK). Top = Block(LastLand). Haut - Block(CBLOCK). Hauteur
"station d’accueil pour corriger position sur differece faible x
Si Block(CBLOCK). Gauche > Block(LastLand). Gauche - 200 et Block(CBLOCK). Gauche < Block(LastLand). Gauche + 200 alors
Block(CBLOCK). Gauche = Block(LastLand). Gauche
« Terrain parfait !
Appel Annoy(1)
End If
LastLand = CBLOCK
' ajouter la bonne
TCorrect = TCorrect + 1
lbCorrect.Caption = TCorrect
« chaque 2 blocs correctes, écran Monte
Si TCorrect Mod 2 = 0 puis ScreenAnim.Enabled = True
« dernière bloquer
Si TRemain = 1 Then
Block(0). Photo = LoadPicture ("< The TOP Block adresse ici >") ' définir l’image
End If
End If
End If
' si est sorti de la forme
Si Block(CBLOCK). Top > Me.Height lors
BlockLever.Enabled = False ' arrêter le levier
BAlive(CBLOCK) = False ' ce bloc est mort
TWrong = TWrong + 1 ' incrémente les torts
lbWrong.Caption = TWrong ' affiche
« dernière bloquer
Si TRemain = 1 Then
Block(0). Photo = LoadPicture ("< The TOP Block adresse ici >") ' définir l’image
End If
Appeler Annoy(2) ' afficher le message d’absence
End If