Miten tämän voisi toteuttaa vb:llä, että ukkelia liikutettaisi tällaisella scriptillä
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Select Case KeyCode Case vbKeyLeft 'Vasemmalle Picture1.Left = Picture1.Left - 100 Case vbKeyRight 'Oikeelle Picture1.Left = Picture1.Left + 100 Case vbKeyUp 'Ylös Picture1.Top = Picture1.Top - 100 Case vbKeyDown 'Alas Picture1.Top = Picture1.Top + 100 End Select End Sub
niin miten tuohon sisällyttäisi että kun ukkeli menee rajan 120x120 yli.. (ainakin vb sanoi = framen leveys ja korkeus) että se ei menisi sen rajan yli :D?
If Picture1.Left > 120 Then Picture1.Left = 120
lainaus:
If Picture1.Left > 120 Then Picture1.Left = 120
Tapahtuu vain että kun painaa vasenta nuolinäppistä niin se menee pisteeseen 120.. koko koodi menee näin ja mihin sijoitan tuo koodin?
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Select Case KeyCode Case vbKeyLeft 'Vasemmalle Picture1.Left = Picture1.Left - 100 Case vbKeyRight 'Oikeelle Picture1.Left = Picture1.Left + 100 Case vbKeyUp 'Ylös Picture1.Top = Picture1.Top - 100 Case vbKeyDown 'Alas Picture1.Top = Picture1.Top + 100 End Select End Sub
edit: siis tuon koodinpätkäsi?
No ensinnäkin haluaisin kysyä, että miksi kummassa pitää hypätä 100 pikseliä kerralla?`Pari klikkausta mihin tahansa suuntaan ja heti tulee raja vastaan...
Sijoita se vaikka End Selectin ja End Subin väliin. Sama se kunhan testaat, mennäänkö yli, sen jälkeen kun olet liikuttanut kuvaa.
Määrittele muuttujat X ja Y ja muuta koodia hieman
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Dim X As Sinngle, Y As Single Select Case KeyCode Case vbKeyLeft 'Vasemmalle X = Picture1.Left - 100 Case vbKeyRight 'Oikeelle X = Picture1.Left + 100 Case vbKeyUp 'Ylös Y = Picture1.Top - 100 Case vbKeyDown 'Alas Y = Picture1.Top + 100 End Select If X > 120 Then X = 120 If Y > 120 Then Y = 120 Picture1.Move X, Y End Sub
Nuo rajat on kyllä aika ahtaat vai pitikö se olla toisinpäin. Onko Scalemode 1 vai 3. Kuten hunajavohveli sanoi, hetihän tossa raja vastaan tulee.
eiei.. ei se mene 100 pikseliä kerrallaan.. se menee noin 2pikseliä mutta tuo sinun pätkäsi vain siirtää tuota ukkelia siihen 120 kohdalle, kummallista eikö vain?
lainaus:
eiei.. ei se mene 100 pikseliä kerrallaan.. se menee noin 2pikseliä mutta tuo sinun pätkäsi vain siirtää tuota ukkelia siihen 120 kohdalle, kummallista eikö vain?
Sinulla on ilmeisesti käytössä mittayksikkönä Twit, joka on viidestoistaosa-pikseli. Kannattaa vaihtaa se Pixeliksi.
Tuo sedän vinkki on siitä parempi, että tuossa tapauksessa tarkistetaan uusi sijainti ennalta ja katsotaan siirrytäänkö siihen vai ei.
Tuo mitä minä ehdotin aiheuttaisi sen, että ensin siirretään kuva uuteen kohtaan (ja siirtyminen näkyy näytöllä) Sitten tarkistetaan onko epäkelpo sijainti. Ja jos on siirretään kuva takaisin (ja siirtyminen näkyy taas, eli kaikenkaikkiaan näkyy pieni nykäys kuvassa)
JA muuten nuita muuttujia ei voi määrittää saman "viivan" alapuolelle.. ne menee väkisin ylempään.. :( mutta kokeilen joskus myöhemmin.. nyt on lähdettävä.. :)
Ai minkä saman "viivan"?
Tarkoitan sen joka jaottelee eri subit.
Mitä nuo x ja y tarkoittaa? ai sitä että x on yläkulma ja y alakulma.. tai jotain vastaavaa?
Piste X, Y on PictureBoxin vasen ylänurkka. Siis X = vasen reuna ja Y = yläreuna.
Okei...
Aihe on jo aika vanha, joten et voi enää vastata siihen.