Miten olisi mahdollista on mahdollista liikuttaa ruudukossa/rajatulla alueella kuvaa ohjelman ajonaikana klikkaamalla buttonia onko se kovinkaan helppoa?
picture1.left = picture1.left + 100
On. Tarkoitatko hiiren Buttonia. Klikatessa voit siirtää kuvan hiirikursorin osoittamaan paikkaan asettamalla kuva.left = X ja kuva.top = Y. Jos haluat raahata kuvaa hiiren mukana, klikkaa kuvaa ja aseta X0=X ja Y0=Y (Mouse_Down-tapahtumassa)
Kun raahaat painike alhaalla, siirrät Mouse_Move-tapahtumassa kuvaa näin
kuva.move kuva.left + X-X0, kuva.top + Y-Y0
ScaleMode oltava tietysti sama kuvassa ja alustassa, mieluiten pixeli.
En meinaa vaan kuvien liikuttelua ruudulla :)
SQ toiko komento laitetaan sitten siihen nappulaan?
OOh se toimii! Kiitos voisitko nytten kertoa millä teen "rajauksen" eli siis alueen josta se ei voi liikkua ohi?
Mutta millä saan sen liikkun ylös tai alas? right tai up tai down ei toimi!
picture.top = picture.top + 100
entäs muut :P? Sain sen liikkuun ihan reunaan näin:
picture.Left = picture.RightToLeft + 100
Hymm valittaa object dosen't support this property or method
Mitäköhän se meinaa?
Code:
Private Sub cmdYlos_Click() Picture.Top = Picture.Top + 100 End Sub
Hups :D en osannu laittaa 1:stä väliin :P tohon picture. kohtaan :P
picture.left=picture.left+100, ei mitää rtl:lää.
lainaus:
picture.left=picture.left+100, ei mitää rtl:lää.
rtl:ää?
Joo mutta miten pääsen toiseen suntaan ja ylös? Ja miten saa estettyä liikkumisen :)
Tai no jos voisitte kertoo miten sais tavallaan ruudukon tai aluueen ja kun kuva tulee siihen se ajaa tietyt komennot :)
lainaus:
rtl:ää?
right-to-left
lainaus:
Joo mutta miten pääsen toiseen suntaan ja ylös?
eiks se oo aika selvää:
vasemmalle: picture1.left=picture1.left-100
oikeelle: picture1.left=picture1.left+100
ylös: picture1.top=picture1.top-100
alas: picture1.top=picture1.top+100
:)
Joo mutta miten pääsen toiseen suntaan ja ylös? Ja miten saa estettyä liikkumisen :)
Tai no jos voisitte kertoo miten sais tavallaan ruudukon tai aluueen ja kun kuva tulee siihen se ajaa tietyt komennot :)
No voi että ku on helppoo!
käytä if lausetta.
if picture1.left = 100 and picture1.top = 150 then 'komentoja print "Ja näin tapahtui" 'komentoja end if
revi siitä
Toivottavasti tajusin kysymyksesi oikeen.
No en kyllä tajuu tosta mitä toi 100 meinaa ja mitä jos ylös 150 niiiiin? Vai laitanko siihen että if 150000 ja 1000 ja sitten kun se menee niiten ohi vai miten en tajuu oikeen?
Noi numerot meinaa pisteitä ruudalla x ja y suunttaan. Että tuskin on 15000 pistettä. ja esim. lause
If joku = 100 then end
meinaa että
jo joku on sata sitten loppuu. Oletko jokin aloittelija==?
Olen alottelija
En tajuu :/ Meinaako että jos se on kohdassa 150 200 niin sillon se tekee komennot? Vai tekeekö se jonku rajauksen?
jos objekti liikkuu vauhdilla yksi(1) ja kun x koordinaatti on 150 ja y koordinaatti on vaikka kohdassa 100. niin vauhti on 0.
öö :D? Vauhti siis kun kuva saapuu kordinaatteihin 150 ja 100 niin sillon se ajaa komennot? Entä miten vois estää siä menemästä siitä?
Eikö siihen olisi parempaa tapaa rajata kuvan liikkuma alue kuin kirjottaa jokaisesta cordinaatista if lause?
Esim. Kun picture1 osuu picture2:een tai vaikka line1:een niin tulis ajaa rivit jotka on kriteerin alla kun kuvat tai kuva osuu viivaan? En löydä kriteeriä millä se tulis sillon kun picture osuu toisiinsa :/
Jos haluat sen osuvan seinään sitten riittää vain yksi koordinaatti. tai käytä AND operaattoria näin:
if x > 100 and x < 150
tuolloin on isompi kuin 100 ja pienempi kuin 150.
Picture1 koordinaatti törmää picture2 koordinaattiin.
hymm. En osaa paikantaa paikantaa kordinaatteja tossa ohjelmassa miten ne sais tarkkaa selville ;P ?
lainaus:
print "Ja näin tapahtui"
Toi print-kohta on juuri se, eli mitä pitää laittaa että se pysähtyy??
Kannattaa tutustua tänne:
https://www.ohjelmointiputka.net/oppaat.php
ja sieltä kohta Visual Basic -opas
Jay kerro mistä kohtaa kyseistä opasta löytyy kriteeri sille kun kuva koskettaa toista. Eli pitäisi saada vaan tietää miten kirjoittaa kun kuva koskettaa toista kuvaa ohjelma ajaa rivit... Silloin voisi piirtää viivoja aina kun kuva koskettaa niitä ohjelma jaa tietyt rivit... Toivottavasti tajuutte
If pelaaja.Top < (hirviö.Top + hirviö.Height) Then If (pelaaja.Top + pelaaja.Height) > hirviö.Top Then If pelaaja.Left < (hirviö.Left + hirviö.Width) Then If (pelaaja.Left + pelaaja.Width) > hirviö.Left Then ' Tähän ne rivit mitkä astuu voimaan, kun kuva osuu kuvaan End If End If End If End If
pelaaja ja hirviö ovat pictureboxien nimiä. Tuo siis toteuttaa rivit kun kuva osuu kuvaan, kuten halusit.
Kiitos todella paljon!
Oleppa hyvä :).
Aihe on jo aika vanha, joten et voi enää vastata siihen.