Kan man bruge Class til at tegne med ?

Tags:    visual-basic

Hej udviklere,

Jeg forsøger at lave et lille 2d spil, der er en repræsentering af et brætspil. I dette brætspil, skulle der gerne komme flere "brikker" (det er dem, der gerne skulle tegnes af Classen) på "bordet".

Jeg kunne tænke mig at man skrev noget ligende med
Class brik
Public Sub ny (ByVal as e.Paint)
e.Graphics.DrawImage(New Bitmap("filename.jpg", x, y)
End Sub

Og man ville herefter i kalde på brik.ny() når man klikker på en knap i hovedformen..

Vær venlig at bær lidt over mig, ved at noget af min kode er forkert, er vant til at have visual studio til at rette mig efter :P


//
Mvh. Nightmare2



4 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Der er et event der hedder form1.paint og den tegner tingene når spillet loader. Hvilket i det her tilfælde ikke er det jeg vil have, den skal først tegne det efter man har klikket på en knap.

Class Brik repræsenterer jo en brik. Så hvis der ikke er nogen brik er der ikke noget at tegne. Når "brikken kommer i spil" laver du den først og ikke før.

Det ikke form.paint du skal bruge, du kan give dit brik class en paint event.

Alternativt hvis du vil have det i form.paint så kan du lave en collection (liste) hvor du har dine brikker i. Den tegner så brikkerne. Men her skal du stadig ikke putte brikkerne i før de bliver lavet ved tryk på knap.



Indlæg senest redigeret d. 25.10.2009 18:06 af Bruger #14645
Typisk er der et bestemt navn til når du laver en funktion, typisk hedder den det samme som klassen, bare med public og (). Ellers hedder den måske Public New()?

Man putter normalt ikke sin tegnekode i sin ny-funktion. I stedet overrider man typisk en funktion, men i VB kan du bruge event. Der er sikkert en event der hedder noget med Draw hvor du kan putte din tegnekode ind i.



Der er et event der hedder form1.paint og den tegner tingene når spillet loader. Hvilket i det her tilfælde ikke er det jeg vil have, den skal først tegne det efter man har klikket på en knap.



Tak for dine Svar de hjajp mig meget med at finde en metode, hvor jeg faktisk kunne benytte mig af.. Jeg fandt dog en, der minder lidt om din med brug af collection.. Jeg sætter brik som en boolean til at starte med, og sætter brik til true når man klikker på en knap, samtidige med at bruge Me.Invalidate .. og under paint event, indsætter jeg en if brik = true (tegne kode)..

Endnu engang Tak for din hjælp :D



t