Att göra en enkel spel i MS VisualBasic 6 (3 / 5 steg)
Steg 3: Viktigaste kodning
-Öppna din kod Editor och gå till General - deklarationsavsnittet och skriv följande kod:
Dim CBLOCK som Byte, BAlive(255) som Boolean, LastLand som Byte, Lastone som Boolean
Dim TWrong som Byte, TCorrect som Byte, TBlocks som Byte, TRemain som Byte, mål som Byte
"//Note att ett Byte typ variabel kan bara inneha 0 till 255.
CBLOCK: Håller det nuvarande block indexnummer.
BAlive(255): Matris för dead(missed) block. eftersom högsta värdet för CBLOCK är 255 anges spänna av matrisen 255.
LastLand: Innehåller indexet på sista blocket landade korrekt. (Fortlever)
LaStone: kan du inte släppa fler block om sant.
T(Wrong/correct/Blocks/Remain): Klart synligt vad de används för. 'T "står för"Totalt".
Mål: hur många block att släppa.
-nu måste vi skapa en Sub för att underlätta släppa och undvika fel.
-Återigen gå till General - deklarationsavsnittet och skriv detta:
Sub DropBlock()
"om ett block fortfarande släppa, sluta förfarandet
Om BlockLever.Enabled = True eller Lastone = True Then Exit Sub
Om TRemain - 1 = 0 då
"stop crane
CCMove.Enabled = False
"Dölj mor block
Block(0). Synliga = False
LaStone = sant
Kalla Annoy(3)
Slut om
"ladda en ny
CBLOCK = CBLOCK + 1
Ladda Block(CBLOCK) "last block
Block(CBLOCK). ZOrder
Block(CBLOCK). Synliga = sant
BlockLever.Enabled = sant
"varje 2 rätt block, skärmen går upp
' Om CBLOCK Mod 2 = 0 sedan ScreenAnim.Enabled = sant
' ange totala
TBlocks = CBLOCK
lbTotal.Caption = TBlocks
"Visa återstående
TRemain = mål - TBlocks
lbRemain.Caption = TRemain
End Sub
Jag har kommenterat av raderna efter den.
Notera på 'Block(CBLOCK). ZOrder': i kontroll matriser, med hjälp av ZOrder tar kontrollen till front (ovanpå de andra).
-Fortfarande en sak kvar. Irritera systemet!. Detta är så enkel cuz det visar bara några budskap.
-Skapa en etikett och namn den "PLand_T" - ingen aning för namnet! -använda ett stort teckensnitt för det och ange justeringen på Center för bättre gränssnitt.
-Skapa en Timer och namnge det "PLand" - aktiverad: False - intervall: 1200
Dubbelklicka på den och skriv följande torsken för det:
PLand_T.Visible = False
PLand.Enabled = False
** Ja! det bara försvinner meddelandet efter 1,2 sekunder
Okej. för att styra detta lägger vi till en Sub kallas irritera med ett argument som anger meddelande-ID. Detta kommer att underlätta processen och tar mindre plats att kalla. eftersom du skrev huvudsakliga koden innan och kalla det när du vill.
-i kod Editor, allmänna - deklarationsavsnittet lägga till denna kod:
Välj ärende mitten av
Fallet 0
PLand_T.ForeColor = vbBlack
PLand_T.Caption = "Hämta redo!"
Fall 1
PLand_T.ForeColor = vbBlue
PLand_T.Caption = "Perfekt landning!"
Fall 2
PLand_T.ForeColor = vbRed
PLand_T.Caption = "Missat!"
Fall 3
PLand_T.ForeColor = vbBlack
PLand_T.Caption = "Det var den sista en!"
cmdU.Visible = sant
cmdD.Visible = sant
End Select
PLand_T.Visible = sant
PLand.Enabled = sant
så meddelandesystemet är bra att gå!
-Nu komma tillbaka på din Form och sätt in en Timer. Namn den "BlockLever" - aktiverad: False - intervall: 25
Denna timer kommer inte bara flytta blocket, främst går det reglerna för spelet. så det är den kritiska delen.
Dubbelklicka på den och skriv in följande kod: (åtgärder kommenterade) måste du ange rätt adresser i de angivna platserna
Block(CBLOCK). Toppen = Block(CBLOCK). Topp + 150
Om CBLOCK = 1 då "först blockera undantag
Om Block(CBLOCK). Topp + Block(CBLOCK). Höjd > = BaseBlock.Top sedan
BlockLever.Enabled = False
BAlive(CBLOCK) = sant
LastLand = 1 "Tja, ännu en idiot kan landa här
"irritera rätt
TCorrect = TCorrect + 1
lbCorrect.Caption = TCorrect
Slut om
Annat
Om Block(CBLOCK). Topp + Block(CBLOCK). Höjd > = Block(LastLand). Topp - 150 och Block(CBLOCK). Vänster > Block(LastLand). Vänster - (Block(CBLOCK). Bredd \ 2) och Block(CBLOCK). Vänster < Block(LastLand). Vänster + Block(LastLand). Bredd - (Block(CBLOCK). Bredd \ 2) då
BlockLever.Enabled = False
BAlive(CBLOCK) = True ' ange detta index som Alive (korrekt landat)
"dock att korrigera y-position
Block(CBLOCK). Toppen = Block(LastLand). Topp - Block(CBLOCK). Höjd
"dock att korrigera x position på låga differece
Om Block(CBLOCK). Vänster > Block(LastLand). Vänster - 200 och Block(CBLOCK). Vänster < Block(LastLand). Vänster + 200 sedan
Block(CBLOCK). Vänster = Block(LastLand). Vänster
"Perfekt mark!
Kalla Annoy(1)
Slut om
LastLand = CBLOCK
"lägga rätt
TCorrect = TCorrect + 1
lbCorrect.Caption = TCorrect
"varje 2 rätt block, skärmen går upp
Om TCorrect Mod 2 = 0 sedan ScreenAnim.Enabled = sant
"senast blockera
Om TRemain = 1 då
Block(0). Bild = LoadPicture ("< The TOP Block adress här >") "Ange bilden
Slut om
Slut om
Slut om
"om gick ur form
Om Block(CBLOCK). Toppen > Me.Height då
BlockLever.Enabled = False ' stoppa spaken
BAlive(CBLOCK) = False ' detta block är död
TWrong = TWrong + 1 ' öka oförrätter
lbWrong.Caption = TWrong ' Visa den
"senast blockera
Om TRemain = 1 då
Block(0). Bild = LoadPicture ("< The TOP Block adress här >") "Ange bilden
Slut om
Kalla Annoy(2) "Visa missade meddelandet
Slut om