Gå til innhold

Hvordan få et image til å bevege seg!!


Anbefalte innlegg

Videoannonse
Annonse

Du kan bare skrive dette i en timer:

 


Image1.Left = Image1.Left + 10

 

Hvis du skal ha bildet til å gå nedover skriver du dette i en timer:

 


Image1.Top = Image1.Top + 10

 

Skifter du pluss-tegnene med minus-tegn går bildet den andre veien!!!!

Lenke til kommentar
  • 3 uker senere...

dersom dette skal være et spill antar jeg at du vil gjerne styre et bilde i forskjellige retninger. timer vil da ikke holde som løsning.

 

da ville jeg heller brukt form_keypress metoden.

denne metoden registrerer alle tastetrykk (når det gjeldende vinduet er aktivt). Deretter kan du sjekke hvilket tastetrykk som ble trykket og tegne bildet dit utifra dette.

 

Private Sub Form_KeyPress(KeyAscii As Integer)

If KeyAscii = (venstre_pilknapp) Then DrawImageLeft

If KeyAscii = (høyre_pilknapp) Then DrawImageRight

 

osv.....

End Sub

Lenke til kommentar
  • 2 uker senere...

Hvis du virkelig vil få fart på spillet ditt vil jeg anbefale DirectX. Det er den raskeste måten å lage spill i VB på. Men du kan naturligvis bruke Windows GDI istedenfor. Du kan prøve det med å først lage en Picturebox med bildet du vil flytte. Deretter setter du .AutoRedraw = True , .Visible = False og .ScaleMode = vbPixel. Du må også sette .ScaleMode = vbPixel i formen. Så inkluderer du disse API-callene i først i koden:

 

Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal X As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long

 

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

 

"BitBlt" brukes til klippe inn en DeviceContex (dc eller hdc) inn til en annen. "Sleep" er bare for å bremse ned farten litt slik at spillet kjører like fort på alle pcer (nesten da).

 

Så må denne konstanten legges inn:

Private Const PATINVERT = &H5A0049

 

Og disse variablene:

 

Dim X%, Y%

 

I Form_Load Sub-en legger du inn en Do-Loop:

 

Private Sub Form_Load()

 

Show

 

Do

X = X + 1

Y = Y + 1

BitBlt Me.hDC, X - 1, Y - 1, Picture1.ScaleWidth, Picture1.ScaleHeight, Picture1.hDC, 0, 0, PATINVERT

BitBlt Me.hDC, X, Y, Picture1.ScaleWidth, Picture1.ScaleHeight, Picture1.hDC, 0, 0, vbSrcCopy

 

Sleep 10

DoEvents

 

Loop

 

Når du kjører koden vil du se bildet i picture1 bevege seg over formen.

Du kan naturligvis bruke Form_KeyPress() her også, men du må skrive

 

X = X + 1 for å bevege bilde til høyre og X = X - 1 for å bevege den til venstre osv.

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...