Magellan Skrevet 7. mai 2006 Del Skrevet 7. mai 2006 (endret) Jeg har nå laget en klasse for all håndtering av kart, hvor jeg brukte to arrays en til x og en til y. Også en til og holde hele karte. Problemet mitt nå er at når jeg trykker på mapet for å lage "brickwall" i en rute, redrawes alle brickwallene på hele mappen og det blinker/flikrer. Aktiverer jeg dubbel buffering, forsvinner de helt? 6048633[/snapback] Hvordan aktiverer du double buffering? Slik gjør jeg det i C#. SetStyle(ControlStyles.UserPaint, true); SetStyle(ControlStyles.AllPaintingInWmPaint, true); SetStyle(ControlStyles.DoubleBuffer, true); Er ikke sikker på om det fungerer i VB. Husk at du må oppdatere all grafikken i OnPaint Endret 7. mai 2006 av Magellan Lenke til kommentar
Gjakmarrja Skrevet 7. mai 2006 Forfatter Del Skrevet 7. mai 2006 (endret) Jeg brukte innstillingene i IDE til å sette dobbel buffering til true. Vel mapeditoren trenger en finpus, den ene function er ikke stabil eller den gir litt feile verdier. Dette skal jeg bare rette opp i, så skal jeg begynner på selve spillet. Vet ikke hvordan det blir med flimring/flikkering i spillet, men det merker jeg vel. Spørsmål: Vurderer å sette meg inn i OpenGL/DirectX 2D for å lage dette, er det noe jeg vil angre på? Endret 7. mai 2006 av chills Lenke til kommentar
Moskus Skrevet 7. mai 2006 Del Skrevet 7. mai 2006 Spørsmål:Vurderer å sette meg inn i OpenGL/DirectX 2D for å lage dette, er det noe jeg vil angre på? 6057129[/snapback] "Angre" er vel ikke ikke riktig uttrykk. "Gi opp" er vel mer dekkende... Mitt tips: Begynn med noe forholdsvis enkelt (hint: Truevision 3D ), og arbeid videre derfra. Lenke til kommentar
oyvind_b Skrevet 8. mai 2006 Del Skrevet 8. mai 2006 I .NET 2.0 er det nok å sette dobbelbuffering i GUI-en. Denne setter DoubleBuffered = true. Vet ikke om du har funnet ut av flimringen din, men husk at det finnes en overloadet versjon av Invalidate metoden, som tar en Rectangle som parameter, altså det området som skal tegnes på nytt. Her kan du sende området til en "Brick" som parameter for kun å tegne denne på nytt. Typisk smart å bruke denne i MouseDown-eventer el.l. Når det gjelder DirectX (2d) så finnes det jo en "managed" versjon som er adskillig enklere å bruke. Ta deg litt tid til å sette deg inn i tutorials (ta en titt på linkene på TheZBuffer) så er det ikke så altfor vanskelig å lage et lite 2D-spill. TheZBuffer linker også til en 2D-tutorial til DirectX. Øyvind Lenke til kommentar
Moskus Skrevet 9. mai 2006 Del Skrevet 9. mai 2006 I .NET 2.0 er det nok å sette dobbelbuffering i GUI-en. Denne setter DoubleBuffered = true.6066455[/snapback] Takk! Endelig enkelt! Lenke til kommentar
Gjakmarrja Skrevet 9. mai 2006 Forfatter Del Skrevet 9. mai 2006 (endret) Takker, skal se på dette. Men nettopp hjemme fra jobb og er trøtt, begynner i morgen. Har god tid i morgen Edit: oyvind_b: Oveloaden til invalidate funket, ingen problemer med flimring lenger. Skal se om jeg får gjort noe mer med spillet også i dag. Endret 10. mai 2006 av chills Lenke til kommentar
Gjakmarrja Skrevet 10. mai 2006 Forfatter Del Skrevet 10. mai 2006 Litenupdate: Map Editoren er nå ferdig og kan lage brukbare maps, men er litt problemer med musen x/y og at jeg ikke kan trykke direkte på ruten for å velge den... litt over inn i ruten over faktisk... Jaja poster hele prosjektet her også får dere snuse litt på det, men ikke klag. Skal rydde opp i koden når dette funker oki. Så skal jeg begynne på selve grafikk motoren når jeg får tid, fikk meg jobb nemmelig omtrent samtidig så jeg startet på dette proskjekte. jobber 4-5 dager kveld.. etter skolen i uken. Her er prosjektet: Link til rar filen Lenke til kommentar
Moskus Skrevet 10. mai 2006 Del Skrevet 10. mai 2006 Revurder stiene dine (forslag: legg de i program-mappen (bin\) og bruk Application.StartupPath). Dette fungerer jo selvfølgelig ikke: bitmap = Image.FromFile("d:\brick.bmp") bitmap2 = Image.FromFile("d:\hardwall.jpg") Dessuten er kommentarer alltid kjekt. (Og ikke si at du skal gjøre det senere, for det skjer aldri). Lenke til kommentar
Gjakmarrja Skrevet 10. mai 2006 Forfatter Del Skrevet 10. mai 2006 (endret) Godt poeng... jeg tar å kommenterer det nå samt fikser de bildene. Da har jeg lastet opp en ny versjon, med kommentarer og fikset bildene. Håper noen kan hjelpe litt med det at musen ikke funker skikkelig tror det har noe med koden som gjør om x og y til ruternummer også omvendt... Link takk for hjelpen Natta. Endret 10. mai 2006 av chills Lenke til kommentar
oyvind_b Skrevet 11. mai 2006 Del Skrevet 11. mai 2006 Jeg tok meg den frihet å skrive om solvrute-metoden din. Det skal løse problemet: Public Function solvrute(ByVal pos As Point) As Integer 'Denne funksjonen gjør om en x og y verdi til rutenummer. Dim xrute As Integer = Math.Floor(pos.X / 35) Dim yrute As Integer = Math.Floor(pos.Y / 35) Dim temp As Integer = xrute * 20 + yrute Return temp End Function Øyvind Lenke til kommentar
Gjakmarrja Skrevet 11. mai 2006 Forfatter Del Skrevet 11. mai 2006 Tusen takk for den snurten med kode, funket kjempe bra. *Oppdatere nedlastbar versjon* Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå