Gjakmarrja Skrevet 15. oktober 2005 Del Skrevet 15. oktober 2005 God Kveld.... Bare lurer hvordan jeg får en pic.box til å "bevege" seg.... Når den akslererer skal eg øke minke intervallen på timeren koden ligger i eller skal eg øke antall pixler den hopper for hver gang loopen gjentar seg....? Takker for svar.... Lenke til kommentar
Richard87 Skrevet 15. oktober 2005 Del Skrevet 15. oktober 2005 det er enkelt, viss timeren har et intervall pa si 1000, kan du endre dette i timer eventen... timer.interval = timer.interval / 1.98'timer.interval * 0.98 f.eks, dett vil gjore at timeren utforer koden 98% raskere enn sist gang og vil fa objectet til og bevege seg raskere og raskere.. Lenke til kommentar
aadnk Skrevet 16. oktober 2005 Del Skrevet 16. oktober 2005 (endret) Jeg vil såvisst ikke endre intervallet til en timer du benyttet deg av - jeg ville ikke ha benyttet en timer i det hele tatt. Det er meget bedre å i stedet anvende en løkke, hvorpå du øker/senker antall piksler objektet skal bevege seg. Alt du behøver, er å bruke en variabel (dblSpeed eksempelvis) som du da øker eller senker etter behov. Når biledopptateringsprosedyren iverksettes (begrenset med Sleep, fortrinnsvis), flytter du simpelthen bildeboksen/objektet like mange piksler som dblSpeed angir. Bemerk, du må muligens lage to variabler - en for X-aksen og en for Y-aksen. Endret 16. oktober 2005 av aadnk Lenke til kommentar
GeirGrusom Skrevet 16. oktober 2005 Del Skrevet 16. oktober 2005 Den greieste måten er å bruke Timer() funksjonen, nå er min vb kunskap litt rusten, men her er mitt forslag: 'Den første funksjonen finner ut hvor lang tid det er gått siden den først ble kalt Private Function GetTimePassed() As Single Static OldTime As Long Dim NewTime As Long if OldTime = 0 Then OldTime = Timer() NewTime = Timer() GetTimePassed = CSng(NewTime - OldTime) / 1000.0f OldTime = NewTime End Function ' Denne funskjonen flytter en picturebox relativt i forhold til hvor mye tid som har gått, og variablene speedx, speedy Private Sub MovePictureBox(PictureBox p, ByVal speedx As Single, ByVal speedy As Single) p.Left = p.Left + (speedx * GetTimePassed()) p.Top = p.Top + (speedy * GetTimePassed()) End Sub Lenke til kommentar
Gjakmarrja Skrevet 16. oktober 2005 Forfatter Del Skrevet 16. oktober 2005 Heheh så flott... då kan eg flytte pic boksen så eg vil... men nå gjenstår kollisjons detection.... Hvordan enderer jeg bilde så det ikke ser ut som bilen kjører opp en bakke vanrett? Lenke til kommentar
aadnk Skrevet 16. oktober 2005 Del Skrevet 16. oktober 2005 Hvordan enderer jeg bilde så det ikke ser ut som bilen kjører opp en bakke vanrett? 5015113[/snapback] Rotér bildet. Enten i run-time (dersom det er snakk om flere vinkler), eller ved å lagre et allerede rotert bilde i en annen bildeboks. Når du så skal vise at objektet beveger seg oppover en bakke, kan du endre Picture-egenskapen til det roterte bildet. Bemerk at du her må ha en tredje bildeboks med det opprinnelige bildet, dersom du skal endre det tilbake. 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å