Article View: be.comp.programming
Article #4159Re: Spel in VB.Net
From: TRAX
Date: Fri, 12 Sep 2003 07:43
Date: Fri, 12 Sep 2003 07:43
69 lines
4401 bytes
4401 bytes
Het ontwerp van de klasse laat ik hier even weg, ik vermoed dat je vertrouwd
bent met object geori�nteerd programmeren :)
Om dynamisch zo'n veld van labeltjes te maken doe je het volgende in de code
achter je form:
--code--
Public Sub createLabel(ByVal rij As Integer, ByVal kol As Integer)
Dim newlabel As Label
newlabel = New Label() 'creatie label object
newlabel.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D
newlabel.Location = New System.Drawing.Point(24 + (24 * kol), 24 +
(24 * rij))
newlabel.Name = "lbl" & rij * 7 + kol
newlabel.Size = New System.Drawing.Size(10, 10)
newlabel.Text = ""
newlabel.BackColor = System.Drawing.Color.LightGray
Me.Controls.Add(newlabel) 'voegt label toe aan form
labelarray(i, j) = newlabel 'voegt label toe aan array
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
For j = 0 To 6
For i = 0 To 5
createLabel(i, j)
Next
Next
End Sub
--einde code--
Dit is natuurlijk maar ��n manier om zoiets te doen, er zullen vast veel
geavanceerdere manieren zijn die de layout veel mooier maken maar t'is het
principe he. Een woordje uitleg:
Dit functietje maakt een speelveldje van 5 op 6 met allemaal labeltje van 10
bij 10. Je kan natuurlijk andere afmetingen nemen, de functie wordt
uitgevoerd in de formload, eerst zal jij daar dus (of helemaal vanboven als
globale variabele) een object moeten initialiseren van de klasse speelveld,
dat de indeling van het labyrint bijhoudt zoals ik in mijn vorige posting
heb uitgelegd. Wat in de functie createlabel is weggelaten (maar niet echt
moeilijk is aan te passen) is dat je de kleur moet veranderen van de labels
naarmate er een doorgang is of een "muur". Dit kan je doen door telkens je
een labeltje maakt eerst te gaan kijken naar je logisch labyrint dat
opgeslagen is in het object van de klasse speelveld (dat zoals gezegd een
gewone tweedimensionale array bijhoudt). De functie hier maakt namelijk
gewoon allemaal grijze labeltjes. Met behulp van constructors kan je
verschillende speelvelden maken maar wat je daarmee van plan bent weet ik
niet.
Dus:
1) klasse maken en get en set functies implementeren voor controle van de
array (muur - doorgang)
2) een object ervan initialiseren
3) in de gui een veld van labels maken die naargelang de array in het object
wordt ingekleurd
waar je speler mag doorgaan en waar niet zal dan ook telkens in het object
moeten geverifi�erd worden (is het een muur of is het een doorgang?).
Kwestie van een algoritme hiervoor te maken lijkt het me simpel, elk label
heeft 4 buren dus moet je met een for lusje nagaan welke van de vier
doorgang of muur is (je kan eventueel een even grote array bijhouden om te
onthouden waar hij naar links/rechts of naar boven/onder geweest is, want
als je dat random laat doen, of steeds de eerste vrije doorgang neemt die de
lus tegenkomt, zou het wel eens een tijdje kunnen duren voor hij de juiste
weg vindt).
Ik kan niet uitleggen ik weet het :) maar ik hoop toch dat het nu
ietsiepietsie duidelijk is, zoniet: vragen staat vrij natuurlijk.
Technical Details
Message-ID:
<MOe8b.15812$qR.574589@phobos.telenet-ops.be>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-06!sn-xit-09!supernews.com!news.maxwell.syr.edu!skynet.be!skynet.be!skynet.be!skynet.be!ossa.telenet-ops.be!phobos.telenet-ops.be.POSTED!not-for-mailReferences:
<IcC7b.12003$nf6.305260@phobos.telenet-ops.be> <eDd8b.15642$Js7.434294@phobos.telenet-ops.be>Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII X-Google-Thread: fcea4,5b3cb0c314dd35ba X-Google-Attributes: gidfcea4,public X-Google-ArrivalTime: 2003-09-12 00:43:41 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-06!sn-xit-09!supernews.com!news.maxwell.syr.edu!skynet.be!skynet.be!skynet.be!skynet.be!ossa.telenet-ops.be!phobos.telenet-ops.be.POSTED!not-for-mail From: "TRAX" <Stijn.Verspeet@pandora[delete.this].be> Newsgroups: be.comp.programming References: <IcC7b.12003$nf6.305260@phobos.telenet-ops.be> <eDd8b.15642$Js7.434294@phobos.telenet-ops.be> Subject: Re: Spel in VB.Net Lines: 71 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2800.1106 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 Message-ID: <MOe8b.15812$qR.574589@phobos.telenet-ops.be> Date: Fri, 12 Sep 2003 07:43:40 GMT NNTP-Posting-Host: 213.118.61.59 X-Complaints-To: abuse@telenet.be X-Trace: phobos.telenet-ops.be 1063352620 213.118.61.59 (Fri, 12 Sep 2003 09:43:40 MEST) NNTP-Posting-Date: Fri, 12 Sep 2003 09:43:40 MEST Organization: Telenet Internet