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 Subniin 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 Subedit: 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 SubNuo 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.