ANTTI!. tai joku jos lähettäisi mailissa tai pistäisi tänne jotain esimerkkejä... esim. oppaista tosta korttipeli ohjelmoinnista siitä pieni yhden kortin esimerkki, kuinka niitä voi liikutella. Jos esimerkissä olisi yksi kortti ja 3 kohtaa johon sen voi liikutta(pasianssi tyyliin). Ja jos sitten siitä tavallisesta peliohjelmoinnsita joku näyttäisi jonkun pelin pohjan (ei valmista peliä!)? Joku yksinkertainen, että saisi ideasta kiinni..
Ilman mitään esimerkkejä, mietitään asiaa yleisesti. Merkitään: kortin koordinaatit ovat kortti_x, kortti_y sekä korkeus ja leveys kortti_h ja kortti_w. Hiiren koordinaatit olkoot mouse_x ja mouse_y.
mouse_x,y:n päivität ajan tasalle formin MouseMove-eventissä.
Lisäksi määrittelemme muuttujan dragcard: jos arvo on nolla, korttia ei liikuteta. Muuten se on liikutuksessa.
Ensiksi sisällytä kaikki tarpeellinen korttien piirtämiseksi eli katso se Antin opas.
Seuraamme hiiren liikettä. Katsotaan missä se menee alas (MouseDown-event): jos hiiren kursori on kortin päällä niin asetamme dragcard:n arvoksi 1:
If mouse_x >= kortti_x And mouse_y >= kortti_y And _ mouse_x < kortti_x + kortti_w And mouse_y < _ kortti_y + kortti_h Then dragcard = 1 End If
Ja aina, kun hiiren nappi nostetaan, aseta dragcard nollaksi jos se ei jo ol (MouseUp-event)
Formilla on MouseMove-event. Laita sinne jotain seuraavaa:
'Tämä koodi pitää kortin hiiren mukana. If dragcard = 1 Then kortti_x = mouse_x - Int(kortti_w / 2) kortti_y = mouse_y - Int(kortti_h / 2) End If
Sitten vielä määrittele vaikka timeri, joka piirtää kortin sijaintiinsa.
Uskoisin, että tämä auttaa jos pystyt hahmottamaan ongelman hieman laajemmin. Älä jumitu näennäisiin rajoituksiin; ne voi usein kiertää terveellä maalaisjärjellä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.