Mä en muista miten picture boxia liikutetaan saan kyllä sen liikkumaan yhen kerran mutta ei tottele sen jälkeen.
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyUp Then
Picture1.Top = Picture1.Top - 100
End If
If KeyCode = vbKeyDown Then
Picture1.Top = Picture1.Top + 100
End If
If KeyCode = vbKeyLeft Then
Picture1.Left = Picture1.Left - 100
End If
If KeyCode = vbKeyRight Then
Picture1.Left = Picture1.Left + 100
End If
End Sub
Miten ylipäätään yrität sitä liikuttaa. Minulla tuo toimii ihan normaalisti. En kyllä löytänytkään mitään miten se toimisi kuvaamallasi tavalla.
mä oon ihmeellinen koodaaja
minkäs sille voi!
miten saa sillee, että jos törmää toiseen pictuureen nii ohjelma loppuu
If y2 < (y1 + korkeus1) Then If (y2 + korkeus2) > y1 Then If x2 < (x1 + leveys1) Then If (x2 + leveys2) > x1 Then End End If End If End If End If
eiks oo mitää muuta tapaa?
pipopää kirjoitti:
eiks oo mitää muuta tapaa?
Ei.
Kaikki nuo tavat muistuttavat rakenteeltaan toisiaan eli if lauseilla tuo pää-asiassa toteutetaan. Tässä on yksi(nkertainen) tapa.
If Picture1.Left = Picture2.Left And Picture1.Top = Picture2.Top Then end
Kaviaarilla oli vähän ihmeellinen vastaus :P
rndprogy kirjoitti:
If Picture1.Top = Picture2.Top And Picture1.Left = Picture2.Left Then end
hmm.. toi on kyllä sellanen tapa että niiden pictureiden kulmien pitäis olla just eikä melkein päällekkäin, leveys ja korkeus pitäis ottaa huomioon eli
If Picture1.Left + Picture1.Width > Picture2.Left And Picture1.Top + Picture1.Height > Picture2.Top And Picture1.Left < Picture2.Left + Picture2.Width And Picture1.Top < Picture2.Top + Picture2.Height Then End 'tai mt tahansa muuta kivaa End If
Muuten rndprogy, kyllä pitäis ihmisten tietää että Left tulee aina ENNEN Topia
Puhveli kirjoitti:
Muuten rndprogy, kyllä pitäis ihmisten tietää että Left tulee aina ENNEN Topia
eli sua? :D just tollasta Topin sonkkausta(hei kaikki, Puhveli on Topi!) :P
jestas konsta...
Edit: tiedätkö minkä vuoksi netissä on nimimerkit? että voi esiintyä anonyymisti kunnes sooda tulee ja pilaa kaiken :D
meni muuten vähä offtopiciksi :D
edit: et muuten ole täällä anonyymisti, katoppas profiiliasi :D
Niinhän se tahtoo välillä mennnä.
Ei sille mitään voi, olen varma että niitä tulee tulemaan
jatkossa vielä entistä enemmän kun ohjelmointiputkaan tulee uusia jäseniä.
Yksi hyvä tapa jolla tuota voisi vähentää olisi, että näillä alueilla joissa kysytään neuvoja ei laitettaisi
mitään viestejä jotka eivät asiaan kuuluisi.
Yleisen keskustelun alueellahan nämä offtopicthan eivät
niin paljoa haittaa.Eli eiköhän jätetä nämä offtopic aiheet sinne.
mutta hauskojahan noi ovat...
mites sen saa liikkumaan itestään niinku ////////////////////// \\\\\\\\\\\\\\\\\\\\\\
ahaa, siis laitat timeriin käskyn joka liikuttelee piktuurilootaa. jos sulla on uudempi vb kuin kakkonen niin silloin timerin pitäisi löytyä työkalupalkista tai ainakin komponenttien listasta
Kiitti
Se käsky on se jolla liikutat sitä pictureboxia.
Eli jos vaikka picture1 pitäisi liikkua vasemmalle
kirjoitat sinne timeriin että:
Picture1.Left = Picture1.Left +1
Ja sitten asetat timerin intervaliksi vaikka 1000 jolloin
ohjelma kutsuu tuota kyseistä tapahtumaan sekuntin välein
jolloin tuo picturebox1 liikku sekuntin välein yhden pixelin vasemmalle.
Tossa tuomaan esimerkissä se kyllä sattuu menemään oikealle :)
ja sitten miten saa toisen pictuurin liikkumaan hitaasti kohti
Liikkumaan hitaasti mitä kohti? No toinen pictureboxi on varmasti Picture2. Teet sille samoin kuin Picture1:lle.
Jos haluat picture2:n seuraamaan picture1:stä sinun kannattaa vertailla pictureboxejen x ja y arvoja.
Esim. jos picture1 x arvo on 200 ja y arvo 150 ja picture2 x arvo on 400 ja y arvo 300 niin liikutat picture2:ta kohti
picture1:tä pienentämällä tämän x ja y arvoja.
miten saa sillee, että kuva siirtyy vaikka puoleen väliin ja tulee takas
Tarkistat miten suuri väli kahden pisteen välillä on.
jos kuva ei ole vielä puolessa välissä niin liikuta sitä eteenpäin ja jos se on jo siellä niin sama juttu toiseen suuntaan.
Käytä myös hakua ja lue vb oppaat.
pipopää, voisit itsekkin perehtyä VB:n perusteisiin niin ei tarvitsisi jatkuvasti olla muitten vastaamassa kysymyksiisi joihin saisit vastaukset jo oppaista.
Aihe on jo aika vanha, joten et voi enää vastata siihen.