Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Liikeasioita

vb1235 [31.10.2003 14:20:28]

#

Kun kuvaobjekti laitetaan "liikkumaan" timerillä
esim: image1.left=image1.left + 10 niin liike näyttää
ns. pätkivän/nykivän. Millä tavoin kuvaobjektin
saisi liikkumaan sulavasti?

Createman [31.10.2003 14:31:43]

#

Riippuu ongelman laadusta. Testaa laittaa timeri nopeammaksi ja liike pienemmäksi tai vaihtamalla .left .move :een.

Antti Laaksonen [31.10.2003 14:54:51]

#

Verrattain helppo tapa saada liike sulavaksi on tehdä seuraavantapainen pelisilmukka.

Sub Pelisilmukka()
    Dim i As Integer, a As Single
    For i = 0 To 1000 Step 5
        Picture1.Left = i
        a = Timer
        Do While a + 0.01 > Timer
            DoEvents
        Loop
    Next
End Sub

Esimerkissä kuvakehys liikkuu vaakasuunnassa ikkunassa. Joka liikkeen välissä on 10 millisekunnin (0,01 sekuntia) DoEvents-komennolla varustettu hidastus, jonka ansiosta ohjelma ei varaa koko prosessoritehoa itselleen. Animaation nopeuteen vaikuttavat For-silmukan askel ja hidastuksen suuruus.

En kuitenkaan suosittele PictureBox- tai Image-kontrollien käyttöä pelissä, mutta tuo edelläoleva periaate toimii myös silloin, kun kuva piirretään suoraan ikkunaan.

edit: Hauska otsikko! :)

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta