Pagina 1 van 2 12 LaatsteLaatste
Weergegeven resultaten: 1 t/m 20 van 23
  1. #1
    Member Duffman-'s schermafbeelding
    Lid sinds
    20/03/05
    Locatie
    Lille
    Berichten
    2.682
    iTrader
    11 (100%)

    [PROG][VB.NET] Mijnenveger (opdracht toekennen aan knop)

    Beste

    ik ben van plan een mijnenveger te maken, gelijkaardig aan diegene die we allemaal kennen vanuit Windows. Ongeveer zelfde interface enzo maar ik was aan het denken hoe ik dit moest gaan doen en ik moet om te beginnen al vrij veel knoppen genereren als ik het spel opstart. Nu is mijn vraag hoe kan ik dit doen? Want ik kan geen arrays gebruiken onder het type "new button".
    Hetgeen ik nu heb is
    Code:
    Dim G As New Button
            G.Location = New Point(50, 50)
            G.Text = "kank er nog 1 maken?"
            G.Size = New Size(50, 50)
     Me.Controls.Add(G)
    Nuja, 1 knop maken kan ik dus maar hoe kan ik er meerdere maken. En nu denk ik meer in de toekomst hoe kan ik aan deze knoppen een gebeurtenis toekennen. Ik vermoed iets met een eventhandler maar weet niet juist hoe de vork in de steel zit. Ik weet dat ik veel vraag maar ik zou er wel veel mee kunnen leren.

    In ieder geval bedankt,
    Duffman-

  2. #2
    Member BuiZe's schermafbeelding
    Lid sinds
    8/08/02
    Berichten
    158
    iTrader
    4 (100%)
    Hier kan je normaal wel enige informatie uithalen: http://gbit.be/Mijnenveger.rar

    Het komt ruwweg op het volgende neer:
    Code:
    Dim knoppen(,) As Button
    
    ...
    
            knoppen = New Button(intVeldGrootte, intVeldGrootte) {}
    
            For i = 1 To intVeldGrootte
                For j = 1 To intVeldGrootte
                    knoppen(i, j) = New Button
                    Controls.Add(knoppen(i, j))
                    AddHandler knoppen(i, j).MouseUp, AddressOf Knoppen_ClickHandler
                Next
            Next
    
    ...
    
    Public Sub Knoppen_ClickHandler(ByVal sender As System.Object, ByVal e As System.windows.Forms.MouseEventArgs)
        ...
    End Sub

  3. #3
    Member Duffman-'s schermafbeelding
    Lid sinds
    20/03/05
    Locatie
    Lille
    Berichten
    2.682
    iTrader
    11 (100%)
    Citaat Oorspronkelijk geplaatst door BuiZe
    Hier kan je normaal wel enige informatie uithalen: http://gbit.be/Mijnenveger.rar

    Het komt ruwweg op het volgende neer:
    Code:
    Dim knoppen(,) As Button
    
    ...
    
            knoppen = New Button(intVeldGrootte, intVeldGrootte) {}
    
            For i = 1 To intVeldGrootte
                For j = 1 To intVeldGrootte
                    knoppen(i, j) = New Button
                    Controls.Add(knoppen(i, j))
                    AddHandler knoppen(i, j).MouseUp, AddressOf Knoppen_ClickHandler
                Next
            Next
    
    ...
    
    Public Sub Knoppen_ClickHandler(ByVal sender As System.Object, ByVal e As System.windows.Forms.MouseEventArgs)
        ...
    End Sub
    Bedankt dit helpt me al hard, toch heb ik nog 2 vraagjes
    die (,) in de declaratie waar staat die voor?
    En waar staan de accolades voor?

  4. #4
    Member BuiZe's schermafbeelding
    Lid sinds
    8/08/02
    Berichten
    158
    iTrader
    4 (100%)
    http://www.startvbdotnet.com/language/arrays.aspx

    - Dim knoppen(,) As Button definieert knoppen als zijnde een (rechthoekige) 2D-array van nog onbepaalde grootte.
    - knoppen = New Button(a, b) {} kent een feitelijke grootte toe aan de dimensies, de { ... } bevat de initiele waarden. Deze laten we hier leeg omdat we elk object apart moeten aanmaken.

  5. #5
    Member Duffman-'s schermafbeelding
    Lid sinds
    20/03/05
    Locatie
    Lille
    Berichten
    2.682
    iTrader
    11 (100%)
    Hey buize, bedankt voor je hulp, ik zit ondertussen al heel wat verder. Men bommen en getallen enzovoort worden al gegenereerd. Nu ga ik moeten uitzoeken hoe ik weet op welke knop er geklikt wordt.

    screenshot:http://users.pandora.be/duffman/woot.JPG

    edit:
    Code:
    ' Visual Basic
    Public Sub ClickHandler(ByVal sender As Object, ByVal e As _
       System.EventArgs)
       MessageBox.Show("you have clicked button " & CType(CType(sender, _
          System.Windows.Forms.Button).Tag, String))
    End Sub
    werkt niet. Weet iemand misschien hoe ik dit kan weten, welke knop er aangeklikt is?
    Grtz,
    Duffman-

    //edit: tis nu helemaal in orde me die knop, nen tag meegeve
    Laatst gewijzigd door Duffman-; 4 augustus 2006 om 00:16

  6. #6
    Member Duffman-'s schermafbeelding
    Lid sinds
    20/03/05
    Locatie
    Lille
    Berichten
    2.682
    iTrader
    11 (100%)
    Als het iemand interesseert.
    Kben nu in de fase waarin het zou moete gebeuren dat als je in een ruimte klikt waar nergens in de buurt zich een bom bevind, dat er knoppen rond ook zichtbaar worden maar dit is nogal moeilijk but working on it...
    nu slapen en morgen verderdoen.

  7. #7
    Member BuiZe's schermafbeelding
    Lid sinds
    8/08/02
    Berichten
    158
    iTrader
    4 (100%)
    Kijk eens in mijn code, ik heb dat recursief opgelost, door op elke knop errond te "klikken" (ClickHandler aanroepen) waar geen mijn ligt en nog niet op geklikt werd. (Het stuk tussen de '__TEST__ comments)

  8. #8
    Member Duffman-'s schermafbeelding
    Lid sinds
    20/03/05
    Locatie
    Lille
    Berichten
    2.682
    iTrader
    11 (100%)
    Io, men mijnenveger is bijna af (ben enkele weken weggeweest) maar hij is echt enorm traag eigenlijk. Als ik op een leeg vakje klik dan moet ik echt lijk een paar seconde wachten totdat hem laat zien wat hij moet laten zien. Als er iemand ge´nteresseerd is in de code PM Mij dan met uw emailadres en kstuur da wel door dan. Kben nu met recursieve functies aant werken om die lege vakjes zichtbaar te maken. Mijn oplossing is een pak omslachtiger dan die van BuiZe ... das wel een feit.

  9. #9
    Member
    Lid sinds
    7/06/06
    Locatie
    Antwerpen
    Berichten
    157
    iTrader
    0
    Heb ooit ook iets dergelijks gemaakt toen nog in .NET en voor zover ik me nog kan herinneren had ik net hetzelfde "traag probleem". Ik had toen een kalender geschreven die in een form dynamisch labels ging createn per dag afhankelijk van de geselecteerde maand. (was de bedoeling om dat fixed op mijn desktop te krijgen zoals er veel van die tools te vinden zijn. Daar heb'k jammer genoeg nooit een oplossing voor gevonden:/) Maar doordat die dynamisch in dien array gestoken werden, vertraagde dat dus gans de boel. Ze gewoon als kadertjes painten ging een pak sneller
    Voor u knoppen zal dat moeilijker zijn om dan ook nog effectief een push_effect te verkrijgen

  10. #10
    Member Duffman-'s schermafbeelding
    Lid sinds
    20/03/05
    Locatie
    Lille
    Berichten
    2.682
    iTrader
    11 (100%)
    Mja kan bijna gans opnieuw beginnen me images dan eigenlijk. Dno yet hoe ik het ga doen. Tis vanaf die recursieve functies (functies die zichzelf oproepen) dat het traag is beginne ngaan.

  11. #11
    Member Duffman-'s schermafbeelding
    Lid sinds
    20/03/05
    Locatie
    Lille
    Berichten
    2.682
    iTrader
    11 (100%)
    Hey, ja kben nog steeds bezig met mijnenveger maar kheb net vakantiewerk moeten doen dus toen ben ik er heel wat minder mee bezig geweest om niet te zeggen niets. Ik zat nu ondertussen met de vraag: hoe komt het dat dit niet werkt:

    Code:
            For intTeller = 1 To intVeldgrootte
                Controls.Remove(btnKnop(intTeller, intVeldgrootte))
            Next
    er wordt nog geen enkele knop verwijderd ...

  12. #12
    Member Duffman-'s schermafbeelding
    Lid sinds
    20/03/05
    Locatie
    Lille
    Berichten
    2.682
    iTrader
    11 (100%)
    Up up..

    kheb nu dus dit

    Code:
        Private Function bla()
            For intTeller1 = 1 To intVeldgrootte
                For intTeller = 1 To intVeldgrootte
                    Controls.Remove(btnKnop(intTeller, intVeldgrootte))
                Next
            Next
        End Function
    waarom worden die knoppen ni verwijderd?

  13. #13
    Member Cakeman's schermafbeelding
    Lid sinds
    4/10/02
    Locatie
    Mol / Bree
    Berichten
    2.418
    iTrader
    2 (100%)
    Citaat Oorspronkelijk geplaatst door Duffman-
    Up up..

    kheb nu dus dit

    Code:
        Private Function bla()
            For intTeller1 = 1 To intVeldgrootte
                For intTeller = 1 To intVeldgrootte
                    Controls.Remove(btnKnop(intTeller, intVeldgrootte))
                Next
            Next
        End Function
    waarom worden die knoppen ni verwijderd?
    Wordt er helemaal niets verwijderd?

    Probeer eens "Controls.Remove(btnKnop(intTeller, intVeldgrootte))" te vervangen door "Controls.Remove(btnKnop(intTeller, intTeller1))"

    Op die manier ga je alle knoppen overlopen en niet enkel de onderste rij.

  14. #14
    Member sabaoth's schermafbeelding
    Lid sinds
    26/11/04
    Locatie
    Mechelen
    Berichten
    360
    iTrader
    0
    ik kan u een volledige mijneveger geve me highscores en al vorig jaar moette make

  15. #15
    Member Duffman-'s schermafbeelding
    Lid sinds
    20/03/05
    Locatie
    Lille
    Berichten
    2.682
    iTrader
    11 (100%)
    Menne mijnenveger werkt nu volledig
    maar sabaoth ... kvroeg mij nu af, uw mijnenveger was met highscores enal ... ik vroeg me af hoe kan je ervoor zorgen dat je werkelijk highscores bijhoudt ook al zet je de PC/toepassing af? Hoe sla je dat op?

  16. #16
    Member Cakeman's schermafbeelding
    Lid sinds
    4/10/02
    Locatie
    Mol / Bree
    Berichten
    2.418
    iTrader
    2 (100%)
    Citaat Oorspronkelijk geplaatst door Duffman-
    Menne mijnenveger werkt nu volledig
    maar sabaoth ... kvroeg mij nu af, uw mijnenveger was met highscores enal ... ik vroeg me af hoe kan je ervoor zorgen dat je werkelijk highscores bijhoudt ook al zet je de PC/toepassing af? Hoe sla je dat op?
    Ik weet dat ik vroeger, toen we nog Windows 98 hadden, ontdekt had dat Minesweeper de scores opsloeg in een .ini bestand. Ik heb toen manueel die scores aangepast. Mijn pa had natuurlijk niks door en vond het heel straf dat ik dat spel zo goed kon

    Je kan het dus gewoon in een bestand wegschrijven. Desnoods geef je het bestand een speciale extensie (.duff ofzo ) zodat de mensen er niet meteen in zouden neuzen. Je kan de inhoud van je bestand ook encoding en decoden met de ASCII encoding die standaard in .NET zit.

  17. #17
    Member
    Lid sinds
    8/11/03
    Locatie
    Antwerpen
    Berichten
    1.726
    iTrader
    0
    Citaat Oorspronkelijk geplaatst door Cakeman
    Ik weet dat ik vroeger, toen we nog Windows 98 hadden, ontdekt had dat Minesweeper de scores opsloeg in een .ini bestand. Ik heb toen manueel die scores aangepast. Mijn pa had natuurlijk niks door en vond het heel straf dat ik dat spel zo goed kon

    Je kan het dus gewoon in een bestand wegschrijven. Desnoods geef je het bestand een speciale extensie (.duff ofzo ) zodat de mensen er niet meteen in zouden neuzen. Je kan de inhoud van je bestand ook encoding en decoden met de ASCII encoding die standaard in .NET zit.
    Ik zou dit in een xml bestand opslagen.

  18. #18
    Member
    Lid sinds
    30/09/02
    Locatie
    Mariakerke
    Berichten
    597
    iTrader
    1 (100%)
    Citaat Oorspronkelijk geplaatst door Obliv`
    Ik zou dit in een xml bestand opslagen.
    Waarom perse een XML bestand. Is dat formaat volgens jou zou uitmuntend veel beter dan andere formaten om de combinatie user-tijd bij te houden?

  19. #19
    Member servi's schermafbeelding
    Lid sinds
    1/07/02
    Locatie
    Zolder
    Berichten
    2.719
    iTrader
    6 (100%)
    omdat dat veel hipper is dan een saai ini-bestand natuurlijk

  20. #20
    Member
    Lid sinds
    12/10/02
    Locatie
    Gent
    Berichten
    14.817
    iTrader
    2 (100%)
    Citaat Oorspronkelijk geplaatst door Krueger
    Waarom perse een XML bestand. Is dat formaat volgens jou zou uitmuntend veel beter dan andere formaten om de combinatie user-tijd bij te houden?
    Nee, maar xml is wel handiger (duidelijker) voor vrij grote hoeveelheden data bij te houden & zeker als je met een zekere vorm van parent/children zit.

    Dan is het maar logisch dat je in een app een vorm van continu´teit gebruikt en voor zowat het meeste xml gebruikt?

    Ik bouw meestal gewoon zowel .xml als .ini reader & writer in zodat ik kan switchen.

Pagina 1 van 2 12 LaatsteLaatste

Discussie informatie

Users Browsing this Thread

Op dit moment bekijken 1 gebruikers deze discussie. (0 leden en 1 gasten)

Regels voor berichten

  • Je mag geen nieuwe discussies starten
  • Je mag niet reageren op berichten
  • Je mag geen bijlagen versturen
  • Je mag niet je berichten bewerken
  •